2003-05-26 Pedro Gimeno <pggimeno@wanadoo.es>
* app/tools/gimpeditselectiontool.c (selection_transform_segs):
Fix off-by-one when dragging the selection. Fixes the last pending
issue of bug #17904. Use temporary variables for clamp values.
* app/display/gimpdisplayshell-selection.c
(selection_transform_segs): Perform the clamping that fixes
bug #110014 here instead of in the callers. Solves a rare case
that was not properly handled before.
(selection_render_points, selection_generate_segs): Remove the
clamping code from here.
* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_rectangle): More
clampings to avoid overflow of 16-bit coordinates.
2003-05-25 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimphelpui.[ch] (_gimp_help_init): changed again
to take no paramaters and use _gimp_standard_help_func from
gimpwidgets-private.
* libgimpwidgets/gimpwidgets-private.[ch]: removed the palette
functions from GimpWidgetVTable. Instead, pass them as
GimpGetColorFunc to gimp_widgets_init() and make them available as
_gimp_get_foreground_func and _gimp_get_background_func.
* libgimpwidgets/gimpcolorbutton.c
* libgimp/gimpui.c: changed accordingly.
* app/libgimp_glue.[ch]: removed the palette functions.
* app/gui/gui.c: added gui_get_foreground_func() and
gui_get_background_func() and pass them to gimp_widgets_init().
2003-05-25 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimphelpui.[ch]: added a GimpHelpFunc parameter to
_gimp_help_init(). Implement gimp_standard_help_func() here and
use the function pointer passed to _gimp_help_init().
* libgimpwidgets/gimpwidgets-private.[ch]: removed
standard_help_func from GimpWidgetsVTable. Require it as paramater
to gimp_widgets_init() and pass it to _gimp_help_init().
* libgimpwidgets/gimpunitmenu.c: use gimp_standard_help_func
directly again.
* app/libgimp_glue.[ch]: removed gimp_standard_help_func().
* libgimp/Makefile.am
* libgimp/gimphelp.c: removed this file (containing
gimp_standard_help_func()).
* app/gui/gui.c: added private gimp_help_func() and pass it to
gimp_widgets_init().
* libgimp/gimpui.c: added private gimp_ui_help_func() and pass it
to gimp_widgets_init().
2003-05-24 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-rotate.c (gimp_image_rotate): fixed offset of
layers and vectors after rotation (bug #113611).
2003-05-23 Sven Neumann <sven@gimp.org>
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets-private.[ch]: new files. Moved
gimp_widgets_init() here and added a vtable parameter. The vtable
has entries for all the symbols that are either provided by libgimp
or gimp itself depending on who is using the library.
* libgimpwidgets/libgimp-glue.c: removed this file that uses to
provide a Win32 only hack that is now not needed any longer.
* libgimpwidgets/gimpcolorbutton.c
* libgimpwidgets/gimphelpui.c
* libgimpwidgets/gimpsizeentry.c
* libgimpwidgets/gimpunitmenu.c
* libgimpwidgets/gimpwidgets.[ch]: don't call the offending
functions directly, but use the vtable entries. This is ugly but
the ugliness is restricted to our code. There are plans to clean
this up further... (Fixes#113410 once more.)
* app/gui/gui.c (gui_libs_init)
* libgimp/gimpui.c (gimp_ui_init): initialize libgimpwidgets with
the proper vtable.
2003-05-23 Sven Neumann <sven@gimp.org>
* app/paint/gimppaintcore.c
* app/tools/gimppainttool.c: applied a patch from Henning Makholm
<henning@makholm.net> that improves drawing of narrow straight lines
by moving the endpoints to pixel centers. Fixes bug #84145.
2003-05-23 Michael Natterer <mitch@gimp.org>
* app/gui/color-notebook.c (color_notebook_new_internal): don't
call gimp_dialog_factory_add_foreign() with a NULL dialog_factory.
* app/widgets/gimpcolorpanel.c: removed the color_notebook_active
boolean state and *always* call color_notebook_show() when the
user clicks the button. This way the notebook is automatically
deiconified or risen.
2003-05-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdrawabletreeview.c
(gimp_drawable_tree_view_eye_clicked): implement <shift>+click on
the eye icon the same way it was in 1.2 (hide all other drawables
if any is visible, show them all otherwise). Fixes bug #113479.
2003-05-22 Michael Natterer <mitch@gimp.org>
* app/vectors/Makefile.am
* app/vectors/gimpvectors-compat.[ch]: new files implementing a
compatibility API for converting old XCF and PDB point arrays
to GimpVectors and vice versa.
* app/xcf/xcf-load.c
* app/xcf/xcf-save.c
* tools/pdbgen/pdb/paths.pdb: use the new functions instead of
having slightly different, but equally ugly code twice.
* app/xcf/xcf-load.c: cleaned up path loading a lot. Removed the
path_point loading utility functions.
* app/pdb/paths_cmds.c: regenerated.
* app/Makefile.am: link vectors/libappvectors.a after
xcf/libappxcf.a so the compat functions (which are not needed in
vectors/) are found. Also reverted an accidentially checked in
change to the libgimpwidgets link order.
2003-05-22 Manish Singh <yosh@gimp.org>
* tools/pdbgen/pdb/fileops.pdb: convert filename to a uri for
find_utils_find_proc.
* app/pdb/fileops_cmds.c: regenerated
2003-05-21 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: added GimpDrawable::alpha_changed()
signal.
* app/core/gimpimage-undo-push.c
* app/core/gimplayer.c: emit it when alpha is removed from or
added to a layer.
* app/widgets/gimpcontainertreeview.[ch]: added a
"name_attributes" column to the list store which provides a
PangoAttrList for the name column.
* app/widgets/gimplayertreeview.[ch]: connect to all layers'
"alpha_changed" and set the BG layer's name to bold.
* app/widgets/gimpdrawabletreeview.c: removed redundant assertions.
2003-05-21 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.[ch]: Extended to be able to handle
multiple polygons in a sane way.
* app/core/gimpimage-mask-select.c: Use this to convert
multiple-stroke vectors objects to selections. Libart rocks!
* app/tools/gimpiscissorstool.c: Changed accordingly.
(The previous commit did not run cleanly)
2003-05-21 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.[ch]: Extended to be able to handle
multiple polygons in a sane way.
* app/core/gimpimage-mask-select.c: Use this to convert
multiple-stroke vectors objects to selections. Libart rocks!
* app/tools/gimpiscissorstool.c: Changed accordingly.
2003-05-20 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-undo-push.c (undo_pop_layer_mod): call
gimp_layer_invalidate_boundary() because the layer extents may
change.
* app/core/gimpitem-linked.c: pass clip_result == TRUE when
rotating linked channels.
* app/core/gimpdrawable-transform.c: implement clip_result so
linked channels can be rotated without leaving the image in an
inconsistent state. Added utility function
gimp_drawable_transform_rotate_point().
2003-05-20 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.[ch]
* app/display/gimpdisplayshell-callbacks.c: removed padding_gc from
the GimpDisplayShell struct. Don't draw the padding color manually.
* app/display/gimpdisplayshell-appearance.c
(gimp_display_shell_set_padding): set the canvas background color
using gdk_window_set_background().
2003-05-20 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.c (gimp_channel_rotate): don't default to
clip_result == TRUE (unlike the other transform functions).
* app/core/gimpdrawable-transform.c
(gimp_drawable_transform_tiles_rotate): fixed offset calculation.
* app/core/gimpimage-rotate.c: change the image size *after* all items
are rotated. Adjust all items' offsets after rotation. Rotate the
resolutions too. Seems to work now and fixes bug #6101.
* app/core/gimpimage.c (gimp_image_size_changed): emit
"size_changed" on all vectors.
* app/core/gimpitem-linked.[ch]: added gimp_item_linked_rotate().
* app/gui/drawable-commands.c: flip and rotate linked items too.
* app/vectors/gimpvectors.c (gimp_vectors_rotate): fixed rotation
angles.
Unrelated:
* app/core/gimpimage-merge.c: don't #include "path.h".
2003-05-20 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-flip.c: no need to include gimp-intl.h.
* app/core/gimpimage-rotate.c: change the image size if needed;
implemented rotation of guides.
* app/vectors/gimpvectors.c: implemented rotation of vectors.
2003-05-20 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-undo-push.c: remember the guide's orientation
in the guide undo. Needed for gimp_image_rotate().
2003-05-20 Sven Neumann <sven@gimp.org>
* app/core/core-enums.[ch]: added new enum GimpRotationType.
* app/core/Makefile.am
* app/core/gimpimage-rotate.[ch]: new files.
* app/core/gimpchannel.c
* app/core/gimpdrawable-transform.[ch]
* app/core/gimpdrawable.c
* app/core/gimpitem.[ch]
* app/core/gimplayer.c
* app/vectors/gimpvectors.c: added GimpItem::rotate. Still work in
progress.
* plug-ins/common/rotate.c: don't install any menu entries. The
plug-in is only kept around to provide plug_in_rotate for backward
compatibility.
* app/gui/drawable-commands.[ch]
* app/gui/image-commands.[ch]
* app/gui/image-menu.c: use the new rotate implementation and use
stock icons for the menu entries. Fixes bug #57797.
2003-05-20 Michael Natterer <mitch@gimp.org>
Some color API cleanup:
* libgimpcolor/gimpcolortypes.h: added struct GimpHSL. All values
are doubles in a [0.0..1.0] range.
* libgimpcolor/gimpcolorspace.[ch]: changed the GimpRGB <-> HSL
functions to use the new struct instead of separate hue, saturation
and lightness doubles. Note that the hue range has changed from
[0.0..360.0] to [0.0..1.0].
* app/base/colorize.c (colorize_calculate)
* plug-ins/common/AlienMap2.c (transform): changed accordingly.
2003-05-19 Michael Natterer <mitch@gimp.org>
* app/gui/image-menu.c: moved the image flip entries to the
Image->Transform submenu and added flip entries to
Layer->Transform. Cleaned up the transform submenus.
* app/gui/drawable-commands.[ch]: added
drawable_flip_cmd_callback().
* tools/pdbgen/pdb/image.pdb: added a PDB wrapper for
gimp_image_flip().
* libgimp/gimpimage_pdb.[ch]
* app/pdb/image_cmds.c
* app/pdb/internal_procs.c: regenerated.
2003-05-19 Michael Natterer <mitch@gimp.org>
* libgimpcolor/gimpcolorspace.c (gimp_hsl_to_rgb): fixed to work
like gimp_hls_to_rgb_int() (does the right thing now for the
saturation == 0 case). Some minor cleanups.
Implemented "Colorize" as suggested in bug #20509. It's not a
toggle in the "Hue/Saturation" tool dialog (which would be a gross
hack IMHO) but a separate tool. Fixes bug #20509.
* app/base/Makefile.am
* app/base/base-types.h
* app/base/colorize.[ch]: the actual mapping function lives
here. Its algorithm was taken from the "colorify" plug-in.
* app/tools/Makefile.am
* app/tools/gimpcolorizetool.[ch]: the tool.
* app/tools/tools.c: register it.
* app/gui/dialogs.c: session-manage its dialog.
* libgimpwidgets/gimpstock.[ch]
* themes/Default/images/Makefile.am
* themes/Default/images/tools/stock-tool-colorize-16.png
* themes/Default/images/tools/stock-tool-colorize-22.png: new
icons from Jimmac.
Unrelated:
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpcolorbalancetool.c
* app/tools/gimphuesaturationtool.c
* app/tools/gimpposterizetool.c
* app/tools/gimpthresholdtool.c: don't #include "tool_manager.h"
2003-05-19 Manish Singh <yosh@gimp.org>
* configure.in: remove glibconfig.h inline check, it hasn't worked
for a long time.
* tools/authorsgen/contributors: added George J. Carrette, author of
SIOD.
2003-05-19 Simon Budig <simon@gimp.org>
* app/vectors/gimpbezierstroke.[ch]: Implemented closed paths. Not
yet available in a sane manner via the UI. Added the last missing
line from gimp_bezier_stroke_interpolate ().
* app/tools/gimpvectortool.c: Changed accordingly
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpvectors.[ch]: removed Tabs.
2003-05-19 Michael Natterer <mitch@gimp.org>
* app/xcf/xcf-load.c (xcf_load_channel): set gimage->qmask_state
to TRUE if a channel's name is "Qmask". Fixes bug #113240.
2003-05-18 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-guides.c (gimp_image_snap_rectangle): snap
correctly to the bottom and right sides of the rectangle. Also
snap to the closer guide if we snap twice on one axis.
Fixes bug #113233.
All snapping functions: use ROUND() instead of truncating the
double coords.
2003-05-18 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): update the cursor on
GDK_ENTER_NOTIFY.
* app/display/gimpdisplayshell-cursor.c
(gimp_display_shell_update_cursor): argh, "0" coordinates are
*inside* the canvas.
Together fixes bug #113239.
2003-05-18 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-convert.c (gimp_image_convert): push a
colormap undo if the image was INDEXED. Fixes bug #113236.
Minor Cleanups.
2003-05-18 Michael Natterer <mitch@gimp.org>
Implemented "Flip Image". Fixes bug #23179:
* app/core/core-enums.[ch]: added GIMP_UNDO_GROUP_IMAGE_FLIP.
* app/core/Makefile.am
* app/core/gimpimage-flip.[ch]: new files implementing
gimp_image_flip().
* app/gui/image-menu.c
* app/gui/image-commands.[ch]: added it to the "Image" menu.
* themes/Default/images/Makefile.am
* themes/Default/images/stock-flip-horizontal-16.png
* themes/Default/images/stock-flip-vertical-16.png
* libgimpwidgets/gimpstock.[ch]: added icons for the new
menu items.
Bugs found while hacking the stuff above:
* app/core/gimpdrawable-transform.c (gimp_drawable_transform_paste):
only call gimp_layer_add_alpha() if the pasted tiles have alpha.
* app/core/gimpimage-undo-push.c (undo_pop_channel_mod): fixed to
do the right thing if the channel is the selection mask.
2003-05-18 Michael Natterer <mitch@gimp.org>
* app/vectors/gimpbezierstroke.[ch]
(gimp_bezier_stroke_new_from_coords): changed to expect all points
(also the first one) in "H, A, H" order. Ignore the first coord
in the array for now. Added "gboolean closed" parameter.
* app/xcf/xcf-load.c
* tools/pdbgen/pdb/paths.pdb: shuffle the legacy path point arrays
around before creating strokes so they match the new order.
* app/pdb/paths_cmds.c: regenerated.
2003-05-18 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-dnd.[ch]
* app/display/gimpdisplayshell.c: enabled dropping of vectors to
the display to copy them between images.
2003-05-18 Michael Natterer <mitch@gimp.org>
* app/core/gimpmarshal.list: added BOOLEAN: OBJECT, POINTER.
* app/widgets/gimpcontainerview.[ch]: added a boolean return
value to GimpContainerView::select_item() which indicates if
the select operation was successful.
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c: changed accordingly.
* app/widgets/gimpdrawabletreeview.c: ditto. Removed the
tree_view's select_function because it was only constraining the
widget, not the underlying select operation. Instead, implement
GimpContainerView::select_item() and disallow anything but the
floating selection to be selected. Also re-enabled the
"floating_selection_changed" callback and explicitely set the
active item so the button states get updated. Fixes bug #112487.
2003-05-18 Michael Natterer <mitch@gimp.org>
* app/vectors/gimpvectors.[ch]: added new function
gimp_vectors_convert() which duplicates a GimpVectors for another
image.
* app/widgets/gimpvectorstreeview.c
(gimp_vectors_tree_view_class_init): use it as
GimpItemTreeView::convert_item() implementation. Enables
DND-copying of vectors between images.
2003-05-18 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c (gimp_layer_new_from_drawable): call
gimp_item_set_image() on the new layer's mask too if it exists.
2003-05-17 Michael Natterer <mitch@gimp.org>
Fixed File->Revert, which was completely broken before:
* app/gui/file-commands.c (file_revert_confirm_callback): set the
new image on all GimpContexts which had the old image set. Unref
the new image after the displays are reconnected.
Added some paranoia code for similar future situations (the
functions below were not broken, but affected by the above bug):
* app/display/gimpdisplay-handlers.c (gimp_display_disconnect):
set gdisp->gimage to NULL before unrefing the image.
* app/widgets/gimpimagedock.c (gimp_image_dock_image_changed):
unref the gimage pointer returned by g_object_get() only if it is
non-NULL. Cleanup.
2003-05-16 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-mask.[ch] (gimp_image_mask_extract): added
"gboolean cut_image" parameter so we can float selections
without cutting them from the original drawable.
* app/gui/select-commands.c
* tools/pdbgen/pdb/selection.pdb: pass cut_image == TRUE.
* app/pdb/selection_cmds.c: regenerated.
* app/tools/tools-enums.[ch]: added SELECTION_MOVE_COPY value
to the SelectOps enum.
* app/tools/gimpselectiontool.c: use the new mode when
<ctrl>+<alt>-dragging a selction (yes, this is evil but there are
no modifiers left).
* app/tools/gimpeditselectiontool.[ch]: extended EditType enum by
EDIT_MASK_COPY_TO_LAYER_TRANSLATE and pass cut_image == FALSE if
it's passed to init_edit_selection().
* app/tools/gimpfreeselecttool.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/gimprectselecttool.c: pass the new mode to
GimpEditSelectionTool.