2004-07-30 Sven Neumann <sven@gimp.org>
Applied a bunch of AIX portability fixes (bug #148813):
* configure.in: when testing for Xmu library, link with -lXt -lX11.
* app/gui/tips-parser.c
* app/gui/user-install-dialog.c
* app/tools/tools-enums.h
* app/widgets/gimpdasheditor.c
* app/widgets/widgets-enums.h
* libgimpthumb/gimpthumb-error.h
* libgimpwidgets/gimpcolorbutton.c
* plug-ins/common/edge.c: removed trailing commas from enums.
* plug-ins/common/snoise.c
* plug-ins/imagemap/imap_cmd_move.c: no C++ style comments.
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.c: use integers for bit fields.
2004-07-29 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimppreviewarea.c: only invalidate the buffer
on size_allocate; allocate a new one on the next call to
gimp_preview_area_draw(). Fixed buffer offset in expose method.
* libgimpwidgets/Makefile.am
* libgimpwidgets/test-preview-area.c: more a benchmark than a
test; quite similar to testrgb from the GTK+ source tree.
2004-07-29 Michael Natterer <mitch@gimp.org>
* libgimpmodule/gimpmoduledb.c: converted tabs to spaces, removed
unused #if 0'ed prototype and unused #includes, minor cleanups.
2004-07-29 Sven Neumann <sven@gimp.org>
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets.def
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/gimppreviewarea.[ch]: added GimpPreviewArea, a
replacement for GtkPreview, loosely based on patches from Geert
Jordaens and David Odin. Fixes bug #144759.
* plug-ins/common/sharpen.c: use the new widget instead of a
GtkPreview; saves about 100 lines of rather complex code :)
2004-07-29 Michael Natterer <mitch@gimp.org>
* etc/controllerrc: changed default configuration of the keyboard
controller: scroll the display one step on cursor_key, scroll by
one page on <shift>+cursor_key and scroll to top/bottom/left/right
on <control>+cursor_key. Fixes bug #53988.
Moved the old opacity-modifying actions to <alt>+cursor_key.
2004-07-29 Michael Natterer <mitch@gimp.org>
Replaced the concept of having a boolean indicating if an undo
step dirties the image by a bitfield indicating which parts
of the image are dirtied:
* app/core/core-enums.[ch]: reordered two values in enum
GimpUndoType, added GIMP_DIRTY_IMAGE_SIZE to enum GimpDirtyMask.
The values of GimpDirtyMask are still questionable and will
probably change...
* app/core/gimpimage.[ch]: removed signal "undo_start" and added
a GimpDirtyMask parameter to the "dirty" and "clean" signals.
* app/core/gimpimage-undo.[ch] (gimp_image_undo_push): replaced
"gboolean dirties_image" by "GimpDirtyMask dirty_mask" and pass
it to gimp_image_dirty().
(gimp_image_undo_group_start): added *ugly* code which tries to
figure GimpDirtyMask from the group's GimpUndoType and store it in
the GimpUndoGroup. Call gimp_image_dirty() instead of the removed
gimp_image_undo_start(). This means the undo group now dirties the
image just like one of its undo steps, but that's no problem since
undoing cleans it in the same way.
* app/core/gimpundo.[ch]: s/dirties_image/dirty_mask/g
(gimp_undo_pop): emit clean/dirty signals *before* performing the
actual undo step so listeners can detach from the image before it
is changed by undo.
* app/core/gimpimage-undo-push.c (gimp_image_undo_push_*): pass a
GimpDirtyMask instead of TRUE/FALSE to gimp_image_undo_push().
* app/core/gimpimagemap.[ch]: removed "gboolean interactive"
because it makes no sense to use GimpImageMap noninteractively.
Don't freeze()/thaw() undo while the image_map is active which
fixes many ways of trashing the image's undo state but probably
introduces new ways of doing evil things.
* app/display/gimpdisplay-foreach.c
* app/display/gimpdisplayshell-handlers.c: changed according
to the GimpImage::clean()/dirty() signal changes. Small fixes
in the quit dialog's dirty image container.
* app/tools/gimptoolcontrol.[ch]: added member and API to
set/get the dirty_mask.
* app/tools/gimpcroptool.c
* app/tools/gimpimagemaptool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimptexttool.c
* app/tools/gimptransformtool.c: whenever setting "preserve" to
FALSE, also set a "dirty_mask" which specifies on which image
changes the tool wants to be canceled.
* app/tools/tool_manager.c: removed "undo_start" connection and
connect to both "dirty" *and* "clean" to check if the active_tool
needs to be canceled. Cancel the tool only if the dirty_mask
passed in the signal has common bits with the tool's dirty_mask.
Fixes bug #109561 and probably opens some new ones...
2004-07-29 Michael Natterer <mitch@gimp.org>
Added support for motion event history as provided by some input
device drivers. If you have a tablet driver supporting this,
please try and report back.
* app/display/gimpdisplayshell.h (struct GimpDisplayShell): added
member "guint32 last_motion_time".
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_tool_events): remember the last_motion_time on
button_press() and after motion() and ask the current device for
its motion history; in motion(), if the active_tool asks for exact
motions, check if the input device recorded a motion history and
process the history instead of the motion event.
(gimp_display_shell_get_time_coords): new utility function which
gets GimpCoords from a GdkTimeCoord struct as used by the motion
history.
2004-07-29 Sven Neumann <sven@gimp.org>
* app/core/core-enums.h: removed enums GimpImageType and
GimpImageBaseType ...
* libgimpbase/gimpbaseenums.h: ... and added them here. Also moved
all enums from gimpbasetypes.h to this new file.
* libgimpbase/Makefile.am
* tools/pdbgen/Makefile.am: changed accordingly.
* app/core/core-enums.c
* libgimp/gimpenums.h
* libgimpbase/gimpbaseenums.c
* tools/pdbgen/enums.pl: regenerated.
* libgimpbase/gimpparasite.c
* libgimpbase/gimpprotocol.c
* libgimp/gimp.c: include <glib-object.h>
* libgimpbase/gimpbasetypes.[ch]: added API to set and get a
translation domain on a GType. This is used for translatable enum
values.
* libgimpbase/gimputils.[ch]: added API to retrieve the translated
name for an enum value.
* app/widgets/gimpenumstore.c
* app/widgets/gimpenumwidgets.c: use the new API in libgimpbase.
2004-07-29 Dave Neary <bolsh@gimp.org>
* app/core/gimpdrawable-transform.c: Stop signed ints overflowing
while getting the mean by replacing (a + b) / 2 with a / 2 + b / 2.
Fixes bug #128594 for drawables less than 32K wide.
2004-07-29 Michael Natterer <mitch@gimp.org>
* app/gui/preferences-dialog.c: renamed "Cleared saved foobar now"
buttons to "Reset saves foobar to default values". Fixes bug #5673.
Added mnemonics for all the configure/save/reset buttons.
2004-07-29 Sven Neumann <sven@gimp.org>
* plug-ins/script-fu/script-fu-scripts.c (script_fu_free_script):
applied patch by Kevin Cozens that moves a g_free() to the right
place (bug #148729).
2004-07-28 Michael Natterer <mitch@gimp.org>
* app/actions/actions.c (action_groups): register the
GIMP_STOCK_VISIBLE icon with the "view" action group.
* plug-ins/gimpressionist/brush.c: removed a redundant parameter
from one of the internal functions.
* plug-ins/gimpressionist/utils.c: Made sure that resources that
are selected by the presets will position their list views
accordingly.
2004-07-28 Sven Neumann <sven@gimp.org>
* plug-ins/imagemap/imap_default_dialog.c: no need to include
"libgimp/stdplugins-intl.h" here.
2004-07-28 Sven Neumann <sven@gimp.org>
* POTFILES.in: updated.
2004-07-28 Michael Natterer <mitch@gimp.org>
* app/gui/preferences-dialog.c (prefs_dialog_new): reordered
buttons in the Interface -> Keyboard Shortcuts section to be
consistent with other sections which provide configure/save/clear
buttons.
2004-07-28 Michael Natterer <mitch@gimp.org>
* app/tools/gimpbycolorselecttool.c (gimp_by_color_select_tool_init)
* app/tools/gimpcolorpickertool.c (gimp_color_picker_tool_init):
don't call gimp_tool_control_set_preserve (tool->control, FALSE)
because these tools don't cashe any image state and don't care
about the image changing under their feet.
2004-07-28 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_reconnect):
emit "reconnect" *before* emitting scale and scroll events so
listeners (the navigation view) can switch to the new image at the
right time.
2004-07-28 Sven Neumann <sven@gimp.org>
Applied a patch from Brion Vibber that makes the TWAIN plug-in
available on Mac OS X (bug #147962):
* configure.in
* plug-ins/Makefile.am: check for Mac OS X twain support.
* plug-ins/twain/Makefile.am
* plug-ins/twain/tw_local.h
* plug-ins/twain/tw_mac.c
* plug-ins/twain/tw_platform.h
* plug-ins/twain/tw_win.c: new files with platform specific code.
* plug-ins/twain/README
* plug-ins/twain/tw_dump.[ch]
* plug-ins/twain/tw_func.[ch]
* plug-ins/twain/tw_util.[ch]
* plug-ins/twain/twain.c: changed accordingly.
* plug-ins/twain/gimp-twain.png: twain application icon used by
the Mac port.
* plug-ins/twain/tw_sess.c: removed, doesn't seem to be used.
* plug-ins/common/shift.c
* plug-ins/common/sinus.c
* plug-ins/common/snoise.c
* plug-ins/common/spheredesigner.c: added missing calls to
g_rand_free (), remove tabs while I was at it.
* plug-ins/common/smooth_palette.c: minor cleanup
* plug-ins/common/spread.c: removed tabs.
2004-07-28 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.h: added still unused flags type
GimpDirtyMask.
* app/base/Makefile.am
* app/core/Makefile.am
* app/display/Makefile.am
* app/paint/Makefile.am
* app/text/Makefile.am
* app/tools/Makefile.am
* app/widgets/Makefile.am
* libgimpthumb/Makefile.am: changed calls to gimp-mkenums to
support GTypeFlags and to make the value arrays private to the
get_type() functions.
* app/base/base-enums.c
* app/core/core-enums.c
* app/display/display-enums.c
* app/paint/paint-enums.c
* app/text/text-enums.c
* app/tools/tools-enums.c
* app/widgets/widgets-enums.c: regenerated.
2004-07-28 Michael Natterer <mitch@gimp.org>
* libgimp/gimpbrushselect.c
* libgimp/gimpfontselect.c
* libgimp/gimpgradientselect.c
* libgimp/gimppalettemenu.c
* libgimp/gimppaletteselect.c
* libgimp/gimppatternselect.c (gimp_*_select_destroy): don't
leak the selected object's name and its data (brush mask etc).
* libgimp/gimpfontmenu.c: moved the icon to the left side of the
button.
* libgimp/gimppalettemenu.c: ditto. Added "Since: GIMP 2.2" to
API docs.
2004-07-28 Michael Natterer <mitch@gimp.org>
Enabled disabling all menu mnemonics. Addresses bug #120034:
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h: added boolean RESTART property
"menu-menonics".
* app/gui/preferences-dialog.c: added a GUI for it.
* app/widgets/gimpactiongroup.[ch]: added boolean CONSTRUCT_ONLY
property "mnemonics".
(gimp_action_group_add_*_actions): call gimp_strip_uline() on
the actions' labels if mnemonics is FALSE.
* app/widgets/gimpactionfactory.[ch]
* app/actions/actions.c: pass gui_config->menu_menmonics to
all action groups.
2004-07-27 Sven Neumann <sven@gimp.org>
* libgimpbase/Makefile.am
* libgimpbase/gimpbase.h
* libgimpbase/gimpbase.def
* libgimpbase/gimpmemsize.[ch]: added new files with memsize
related functions (moved here from gimputil.c) and
GIMP_TYPE_MEMSIZE (moved here from app/config/gimpconfig-types.[ch]).
* libgimpbase/gimputils.[ch]: removed gimp_memsize_to_string() here.
* libgimpbase/gimpunit.[ch]: added GIMP_TYPE_UNIT (moved here from
app/config/gimpconfig-types.[ch]).
* libgimpbase/gimpbase-private.c
* libgimp/gimptile.c
* libgimp/gimpunitcache.c
* plug-ins/help/domain.c
* app/xcf/xcf-read.c: need to include glib-object.h.
* plug-ins/common/uniteditor.c: use GIMP_TYPE_UNIT.
* app/config/gimpconfig-types.[ch]: removed code that lives in
libgimpbase now.
* app/config/gimpconfig-deserialize.c: changed accordingly.
* app/config/gimpbaseconfig.c
* app/config/gimpdisplayconfig.c
* app/core/gimpcontext.c
* app/gui/grid-dialog.c
* app/tools/gimpcolortool.c
* app/widgets/gimpaction.c
* app/widgets/gimpunitstore.c: no need to include gimpconfig-types.h
any longer.
2004-07-27 Michael Natterer <mitch@gimp.org>
* libgimp/Makefile.am
* libgimp/gimp.h
* libgimp/gimpui.h
* libgimp/gimppalettemenu.[ch]
* libgimp/gimppaletteselect.[ch]: added palette select wrapper and
widget (straight copy & string replace of the font select stuff).
Fixes bug #136130.
* plug-ins/script-fu/script-fu-enums.h
* plug-ins/script-fu/script-fu-scripts.c
* plug-ins/script-fu/siod-wrapper.c: added SF_PALETTE so it can
be used in scripts.
* plug-ins/script-fu/scripts/test-sphere.scm: added a palette
parameter to the test script.
2004-07-27 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.c (gimp_image_finalize): remove the image
from the image hash table and set its "gimp" pointer to NULL
*after* all layers, channels, vectors and the selection are
finalized; otherwise these items have no chance of removing
themselves from the item hash table (because image->gimp is
already NULL). Spotted by pgimeno and nomis.
(should be backported after it got some testing)
2004-07-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimphelp-ids.h removed unused help IDs
GIMP_HELP_FILE_OPEN_XCF and GIMP_HELP_FILE_SAVE_XCF. The help IDs
for these entries are generated from the procedure names.
2004-07-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimphelp.c (gimp_help): print the help-id and
help-domain to stdout if gimp was started with the --verbose
command-line option.
2004-07-27 Sven Neumann <sven@gimp.org>
* libgimp/gimpbrushmenu.c
* libgimp/gimppatternmenu.c: attempt to make the brush and pattern
selectors look less like buttons (supposed to fix bug #147777).
2004-07-27 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpcolorhexentry.c (gimp_color_hex_entry_events):
also accept the short hexadecimal notation (3 hex digits).
2004-07-26 Michael Natterer <mitch@gimp.org>
* app/pdb/procedural_db.[ch] (procedural_db_free_data): new
function which clears the whole list of data set by plug-ins.
(procedural_db_free): use it.
* app/actions/plug-in-actions.c
* app/actions/plug-in-commands.[ch]: added action, callback and
confirmation dialog for "Reset all filters to default values".
Somehow addresses bug #81015.
* app/widgets/gimphelp-ids.h: added a help ID for the new action.
* menus/image-menu.xml.in: added it to the "Filters" submenu.
2004-07-26 Michael Natterer <mitch@gimp.org>
* app/core/gimpdatafactory.h: added "gboolean writable" to the
GimpDataFactoryLoaderEntry struct. Return a GList* instead of
GimpData* from GimpDataLoadFunc so it's possible to load more than
one data object from one file.
* app/core/gimpdatafactory.c (gimp_data_factory_load_data):
changed accordingly: add all items of the returned lists to the
data factory. Make the data object writable only if it's in the
writable path *and* its loader entry says it's a writable format
*and* the returned list contains exactly one element.
* app/core/gimp.c (gimp_real_initialize): declare all loader
entries as writable where we have code to read and write exactly
one object per file; all others are not writable.
* app/core/gimpbrush.[ch]
* app/core/gimpbrushgenerated.[ch]
* app/core/gimpbrushpipe.[ch]
* app/core/gimpgradient-load.[ch]
* app/core/gimppalette.[ch]
* app/core/gimppattern.[ch] (all load functions): return a list
containing the loaded object instead of the object itself.
2004-07-26 Sven Neumann <sven@gimp.org>
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets.def
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/gimpcellrenderercolor.[ch]: added a GimpRGB cell
renderer.
* libgimpwidgets/gimpcolorarea.[ch]: exported the function that
renders the color to a buffer for internal use in libgimpwidgets.
* libgimpwidgets/gimpcolorhexentry.c: use the new cell renderer
for the completion popup.
2004-07-26 Sven Neumann <sven@gimp.org>
* libgimpcolor/gimprgb.[ch]: register GimpRGB as a boxed type.
* libgimpcolor/gimpadaptivesupersample.c
* libgimpcolor/gimpcolorspace.c
* libgimpcolor/gimprgb-parse.c
* libgimp/gimp.h: include <glib-object.h> instead of <glib.h>.
* plug-ins/gimpressionist/: placed all the orientation map-related
public functions in orientmap.h. Now we're freeing the PPM's that it
is allocating by a call to orientation_map_free_resources().
2004-07-26 Sven Neumann <sven@gimp.org>
* libgimpcolor/gimprgb-parse.c
* libgimpcolor/gimprgb.h: added new function gimp_rgb_list_names()
that gives access to the list of SVG color keywords.
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/gimpcolorhexentry.[ch]: added new widget that
allows to enter colors in hex notation or by using color names.
* libgimpwidgets/gimpcolorscales.c: use a GimpColorHexEntry.
* plug-ins/gimpressionist/: placed all the orientation map-related
public functions in orientmap.h. Now we're freeing the PPM's that it
is allocating by a call to orientation_map_free_resources().
2004-07-26 Michael Natterer <mitch@gimp.org>
* app/tools/gimpeditselectiontool.[ch]: renamed init_edit_selection()
to gimp_edit_selection_tool_start(). Removed enum EditType.
* app/tools/tools-enums.h: added enum GimpTranslateMode instead.
* app/tools/gimpmovetool.c: changed accordingly.
* app/tools/gimpselectiontool.[ch]: added protected utility
function gimp_selection_tool_start_edit().
* app/tools/gimpfreeselecttool.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/gimprectselecttool.c: use the new function instead of
duplicating the same code three times, don't include
"gimpeditselectiontool.h".
* app/tools/gimpiscissorstool.c: don't include
"gimpeditselectiontool.h".
2004-07-26 Michael Natterer <mitch@gimp.org>
* app/tools/gimpeditselectiontool.c: don't freeze()/thaw() the
image's undo to prevent live-movement from ending up on the undo
stack. Instead, just stop pushing undo steps after the initial
movement. Simplifies edit_select's undo code quite a bit and fixes
bug #148458.
2004-07-26 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpcolorscales.c (gimp_color_scales_hex_events):
accept SVG color names in the hex entry. Not very intuitive but
probably a nice experts feature and it can be improved later.
2004-07-26 Michael Natterer <mitch@gimp.org>
* app/main.c (main): use #ifdef GIMP_UNSTABLE instead of looking
at GIMP_MINOR_VERSION.
* app/app_procs.c: don't #include "tools/gimp-tools.h".
2004-07-26 Sven Neumann <sven@gimp.org>
* plug-ins/bmp/bmp.h
* plug-ins/bmp/bmpread.c: applied a patch by Brion Vibber that
fixes extra data overflow, nonstandard 16bpp field arrangement
and unrecognized compression (bug #143682).
* plug-ins/common/decompose.c: clamp results of LAB decomposition
so that out-of-gamut conversions do not overflow and get
badly distorted. Fixes bug #147603. Note that it would probably
be a good idea to do similar things for other conversion types.
* plug-ins/gimpressionist/: fixed bug #148088: ("Gimpressioinst crashes if
given malicious presets with out of range values, in the radio buttons
group numeric values: "placetype", "orienttype", etc. ").
This was done by adding clamps to the relevant values in the preset.
2004-07-25 Raphael Quinet <quinet@gamers.org>
* INSTALL: Minor fixes and improvements. Suggest using a
different prefix and setting PKG_CONFIG_LIBDIR if old versions of
GTK+ libs are found and cannot be removed without breaking other
packages.
2004-07-23 Sven Neumann <sven@gimp.org>
* app/core/gimpgradient-load.c (svg_parser_end_element): fixed
handling of the last gradient segment and did some code cleanup.
2004-07-23 Sven Neumann <sven@gimp.org>
* libgimpcolor/test-color-parser.c: added more test samples.
* libgimpcolor/gimprgb-parse.c: fixed a bug that I found with the
new tests.
* app/core/gimpgradient-load.c: changed SVG parser to handle
gradients that are defined more deeply in the SVG hierarchy. Added
a simplistic CSS style parser to deal with gradient definitions
that use CSS to define the gradient stop properties (closes bug
#148127).
2004-07-23 Sven Neumann <sven@gimp.org>
* app/core/gimpdatafactory.c: some newlines to improve error
messages.
* app/core/gimpgradient-load.c (gimp_gradient_load_svg): fixed
error handling.
2004-07-23 Sven Neumann <sven@gimp.org>
* libgimpcolor/Makefile.am
* libgimpcolor/test-color-parser.c: added a simple unit test
framework for the color parser.
* libgimpcolor/gimprgb-parse.c: fixed parsing of rgba() values.
* libgimpmath/test-md5.c: minor cleanup.
2004-07-22 Sven Neumann <sven@gimp.org>
* libgimpcolor/gimprgb-parse.c
* libgimpcolor/gimprgb.h: improved the CSS color parser code,
added new function gimp_rgba_parse_css(), added support for HSL
color values.
2004-07-22 Sven Neumann <sven@gimp.org>
* libgimpcolor/gimprgb-parse.c
* libgimpcolor/gimprgb.h: use a signed integer to pass the string
length to the new parser functions. The API explicitely asks for
-1 to be passed...
* app/core/gimp.c
* app/core/gimpgradient-load.[ch]
* app/core/gimpgradient.h: added preliminary support for loading
simple SVG gradients (see bug #148127). Be careful with this new
feature; editing the loaded gradient will cause the SVG file to be
overwritten! Work in progress...
2004-07-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpactionview.c: rephrased the text for the dialog
that appears if a new shortcut collides with an existing one.
* libgimpcolor/gimprgb.[ch]: added new function gimp_rgb_parse_name()
which accepts RGB colors in hexadezimal notation or as SVG color
keywords.
2004-07-22 Michael Natterer <mitch@gimp.org>
* tools/gimp-remote.c (main): correctly convert relative paths to
URIs. Append the resulting URI only if it's not NULL.
2004-07-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox.c (toolbox_create_tools): connect to
"accel-changed" of the accel_group using connect_object(), not
just connect() so we don't crash when it's emitted after the
toolbox is destroyed.