2003-10-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview-dnd.c: added auto-scrolling
when DND-hovering close to the widget's top or bottom border.
Fixes bug #124231.
* app/widgets/gimpcontainertreeview.h: added some auto-scroll state
to the GimpContainerTreeView struct.
* app/widgets/gimpcontainertreeview.c: remove the auto-scroll
timeout in GtkWidget::unmap().
2003-10-09 Tor Lillqvist <tml@iki.fi>
* gimp-zip.in: New file, shell script used to build zipfiles for
distribution of Windows runtime and developer packages.
* Makefile.am
* configure.in: Add it, expand it.
* libgimp*/Makefile.am: On Windows, install and uninstall the .def
files.
* app/config/gimpguiconfig.c: On Windows, don't use the internal
help browser by default, as it isn't there. Don't use a fixed
guess for Internet Explorer's path on Windows. We don't even need
to know the path to the web browser, we can use ShellExecute() in
the webbrowser plug-in.
* plug-ins/common/webbrowser.c: Use ShellExecute() on Windows.
* po*/makefile.cygwin: Remove, unmaintained.
2003-10-09 Sven Neumann <sven@gimp.org>
* app/core/gimpobject.[ch]: added new function
gimp_object_name_collate() which compares two object names for
ordering using the linguistically correct rules for the current
locale and does some caching to speed up subsequent calls.
* app/core/gimpdatalist.c (gimp_data_list_data_compare_func): use
gimp_object_name_collate() from here.
* app/core/gimplist.[ch]: added convenience function
gimp_list_sort_by_name.
* app/text/gimpfontlist.c (gimp_font_list_restore): use
gimp_list_sort_by_name() instead of g_utf8_collate.
2003-10-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.h: added GIMP_VIEWABLE_MAX_BUTTON_SIZE
GIMP_VIEWABLE_MAX_MENU_SIZE.
* app/core/gimpviewable.c (gimp_viewable_get_popup_size): smarter
popup size limitation: limit each axis to 2 * MAX_POPUP_SIZE
and the area to MAX_POPUP_SIZE ^ 2.
* app/core/gimpbuffer.c
* app/core/gimpimage-preview.c
* app/core/gimpitem-preview.c
* app/text/gimpfont.c (GimpViewable::get_popup_size): removed
all limitations.
* app/widgets/gimpcontainermenu.c
* app/widgets/gimpcontainermenuimpl.c
* app/widgets/gimpmenuitem.c
* app/widgets/gimpviewablebutton.c: use the new button and menu
size defines.
2003-10-09 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: added GimpScanConvert typedef.
* app/core/gimpscanconvert.h: removed it here.
* app/core/gimpchannel-select.[ch]: factored out new
function gimp_channel_select_scan_convert().
(gimp_channel_select_polygon)
(gimp_channel_select_vectors): use it.
(gimp_channel_select_alpha): when called on a layer without alpha,
don't fail but fake the effect of a fully opaque alpha channel.
* app/tools/gimpiscissorstool.c: some cleanup.
(iscissors_convert): fixed my latest cleanup (don't cast the
tool to a GimpGrawable ;). Don't ignore options->antialias.
2003-10-08 Manish Singh <yosh@gimp.org>
* plug-ins/script-fu/script-fu-scripts.c: fix SF_ADJUSTMENT handling
when crafting the string to call, since it now gets a GIMP_PDB_FLOAT.
(This bug has been there since 1.3.4...)
2003-10-08 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.c (gimp_edit_fill_internal): new utility
function which does everything gimp_edit_clear() and
gimp_edit_fill() do but doesn't fail to:
- fill an indexed drawable with white.
- fill a drawable with alpha with transparency.
(gimp_edit_clear)
(gimp_edit_fill): use gimp_edit_fill_internal().
* app/core/gimpdrawable.c (gimp_drawable_[apply,replace]_region):
added more g_return_if_fail(required_parameter != NULL).
2003-10-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdock.[ch]: added new pure virtual function
GimpDock::setup() which configures a dock like a passed template
dock.
* app/widgets/gimpimagedock.c: implement it and set
"show_image_menu" and "auto_follow_active" accordingly.
* app/widgets/gimpdockable.c (gimp_dockable_detach): call
gimp_dock_setup() to configure the new dock like the old one.
Removed inclusion if "gimpimagedock.h".
* app/gui/dialogs-commands.c: minor code cleanups.
2003-10-08 Michael Natterer <mitch@gimp.org>
Fixed bug #119423. There was no speed regression with the actual
painting, just with the display update (which effectively led to
faster painting, it just felt slower).
* app/display/gimpdisplayshell.c (gimp_display_shell_flush): added
"gboolean now" parameter and update the display immediately if
it is TRUE.
* app/display/gimpdisplay.c (gimp_display_flush_whenever): pass
the "now" we got passed to the function above, so calling
gimp_display_flush_now() really flushes *now* again.
2003-10-08 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb/fileops.pdb (file_load_invoker):
procedural_db_execute() *must* get the correct number of args, so
do like file_save_invoker and create a full Argument array with
the correct number of args and copy our own args into it before
calling the actual load procedure. Fixes bug #124059.
* app/pdb/fileops_cmds.c: regenerated.
2003-10-07 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockable.[ch] (gimp_dockable_detach): new
function. Need to include ugly stuff for proper GimpImageDock
setup.
* app/widgets/gimpdockbook.c (gimp_dockbook_menu_end): use
gimp_dockable_detach() and removed the evil includes.
* app/gui/dialogs-commands.c (dialogs_detach_tab_cmd_callback):
implement it using gimp_dockable_detach().
2003-10-07 Sven Neumann <sven@gimp.org>
* configure.in: bumped version number to 1.3.22.
Moved images used from scripts as suggested by Carol:
* plug-ins/script-fu/scripts/Makefile.am
* plug-ins/script-fu/scripts/*.jpg: removed images from scripts
directory...
* configure.in
* plug-ins/script-fu/scripts/images/Makefile.am
* plug-ins/script-fu/scripts/images/*.jpg: ... and added them here.
* plug-ins/script-fu/scripts/carved-logo.scm
* plug-ins/script-fu/scripts/chrome-it.scm
* plug-ins/script-fu/scripts/crystal-logo.scm
* plug-ins/script-fu/scripts/sota-chrome-logo.scm
* plug-ins/script-fu/scripts/test-sphere.scm: changed accordingly.
2003-10-06 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.c (gimp_drawable_mask_bounds): one
more fix for bug #107949: don't take the selection into
account if we are operating on the selection itself.
Ordered shadow tiles functions together, cleanup.
2003-10-06 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-stroke.c
(gimp_drawable_stroke_scan_convert): added new local variables to
hold the drawable's offsets instead of abusing x2 and y2. Use
existing APIs instead of re-implementing stuff. Removed an
obsolete call to tile_manager_set_offsets(). Cleanup.
2003-10-06 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.c (gimp_channel_new_from_alpha): create
a channel which the size of the layer, not of the image...
* app/core/gimpchannel-select.c (gimp_channel_select_alpha):
...and take the layer's offsets into account.
* app/core/gimpscanconvert.[ch] (gimp_scan_convert_render): added
off_x and off_y parameters and don't use the passed TileManager's
offsets.
* app/core/gimpchannel-select.c
* app/core/gimpdrawable-stroke.c
* app/tools/gimpiscissorstool.c: changed accordingly.
2003-10-06 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: added new virtual functions
GimpDrawable::get_active_components(), apply_region() and
replace_region().
* app/core/Makefile.am
* app/core/gimpdrawable-combine.[ch]: new files containing
apply_region()'s and replace_region()'s default implementation.
They are identical to the ones removed from GimpImage except that
they don't mask the selection with itself (bug #107949).
* app/core/gimpchannel.c
* app/core/gimplayer.c: implement get_active_components().
* app/core/gimpchannel.c: implement apply_region() and
replace_region() and invalidate the channel's boundary
before upchaining (bug #107949).
* app/core/gimpimage.[ch]: removed gimp_image_apply_image(),
gimp_image_replace_image() and gimp_image_get_active_components().
* app/core/gimpimage-undo-push.c (undo_pop_image): invalidate
boundary and bounds if the drawable is a channel (bug #107949).
(undo_pop_mask)
(undo_pop_channel_mod): finish previous commit :)
* app/core/gimp-edit.c
* app/core/gimpdrawable-blend.c
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpdrawable-stroke.c
* app/core/gimpimagemap.c
* app/core/gimplayer-floating-sel.c
* app/paint/gimppaintcore.c
* app/tools/gimpinktool.c: changed accordingly.
2003-10-06 Michael Natterer <mitch@gimp.org>
Treat changes to the selection like changes to any other drawable:
* app/core/gimpchannel.c
* app/core/gimpchannel-combine.c: call gimp_drawable_update() after
changing the channel.
* app/core/gimpimage.[ch]: added struct GimpImageFlushAccumulator
with one member "gboolean mask_changed". Connect to "update" of
the selection and set accum.mask_changed to TRUE in the callback.
Added default implementation for GimpImage::flush() and emit
"mask_changed" there.
Unrelated:
* app/core/gimpimage.h: removed GimpGuide struct...
* app/core/gimpimage-guides.h: ...and added it here.
* app/core/gimpimage-undo-push.c (undo_pop_mask)
(undo_pop_channel_mod): don't distinguish between selection and
non-selection channels and just call gimp_drawable_update().
* app/core/gimpundo.h
* app/core/gimpimage-undo.c: removed "gboolean mask_changed" from
the GimpUndoAccumulator struct since we don't have to care about
that signal explicitly any more.
* app/display/gimpdisplay-foreach.[ch]: removed gimp_displays_flush().
* tools/pdbgen/pdb/display.pdb (displays_flush_invoker): call
gimp_image_flush() on all images so the flush accumulator is
honored.
This generalization enables the removal of more special purpose
code which was needed to treat the selection different:
* app/core/gimpimage-mask-select.[ch]: removed...
* app/core/gimpchannel-select.[ch]: ...and added under a new name
because it's not selection specific any more.
* app/core/gimpimage-mask.[ch]: removed...
* app/core/gimpselection.[ch]: ...added the two remaining
functions here. Removed all calls to gimp_image_mask_changed().
* app/core/Makefile.am
* app/core/gimp-edit.c
* app/core/gimpdrawable-transform.c
* app/core/gimpimage-scale.c
* app/core/gimpimage-snap.c
* app/display/gimpdisplayshell.c
* app/gui/channels-commands.c
* app/gui/layers-commands.c
* app/gui/select-commands.c
* app/gui/vectors-commands.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpellipseselecttool.c
* app/tools/gimpfreeselecttool.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimprectselecttool.c
* app/tools/gimptransformtool.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpvectorstreeview.c
* app/xcf/xcf-save.c
* tools/pdbgen/pdb/paths.pdb
* tools/pdbgen/pdb/selection.pdb
* tools/pdbgen/pdb/selection_tools.pdb: changed accordingly.
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpimage-colormap.c
* app/core/gimplayer-floating-sel.c
* app/core/gimplayer.c
* app/gui/image-menu.c
* app/paint/gimppaintcore.c
* app/tools/gimpcroptool.c
* app/tools/gimpinkoptions.c
* app/tools/gimpvectortool.c: removed useless and/or obsolete
#includes.
* app/pdb/display_cmds.c
* app/pdb/paths_cmds.c
* app/pdb/selection_cmds.c
* app/pdb/selection_tools_cmds.c: regenerated.
2003-10-06 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c: guard callbacks
against being invoked during display destruction. Fixes crashes
when closing/opening images. Also fixes the crash reported by
Pedro Gimeno in the comment to bug #117884, but doesn't fix
#117884 since it's a different issue.
2003-10-06 Michael Natterer <mitch@gimp.org>
* app/tools/tool_manager.c (tool_manager_image_undo_start): HALT
the tool with the right display. Fixes some random tool crashes.
2003-10-06 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdnd.c (gimp_dnd_data_drop_handle): check for
NULL pointers in the GimpDndDataDef array before using them.
Might happen with the changed dockable DND code :(
* app/composite/make-install.py: migrated to new (trimmer) code and
removed dead code. Some beautification for generated code.
* app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis,generic}.{c,h}:
All init() functions are also a run-time check and now expected to
return TRUE/FALSE if the particular set of compositing functions can
be used.
* app/composite/gimp-composite.c: No longer has to determine if
the particular set of compositing functions can be used.
* app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis}-{install,test}.c:
Regenerated
* app/composite/test-composite.c: Deprecated, removed. All tests are automatically
generated and the code is in app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis}-test.c:
* app/composite/Makefile.am: removed unused references to test-composite.c
2003-10-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdock.c (gimp_dock_separator_drag_drop): handle
dockable drops where the drag source is a GimpDockable itself.
* etc/sessionrc: try a new default dialog setup.
2003-10-05 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c: set the screen resolution before
setting the initial scale; update it in GtkWidget::screen_changed.