* app/core/gimpimage.[ch]: make the parent parameter public in
add_layer(), add_layers(), add_channel() and add_vectors().
* app/vectors/gimpvectors-import.[ch]: add parent parameters to
the vectors import functions.
* app/core/gimpchannelundo.[ch]
* app/core/gimplayerundo.[ch]
* app/vectors/gimpvectorsundo.[ch]
* app/core/gimpimage-undo-push.[ch]: remember the parent item when
removing layers, channels and vectors.
* app/actions/channels-commands.c
* app/actions/debug-commands.c
* app/actions/edit-commands.c
* app/actions/layers-commands.c
* app/actions/vectors-commands.c
* app/core/gimp-edit.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-merge.c
* app/core/gimpimage-quick-mask.c
* app/core/gimplayer-floating-sel.c
* app/core/gimpselection.c
* app/core/gimptemplate.c
* app/dialogs/file-open-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/text/gimptext-compat.c
* app/tools/gimptexttool.c
* app/tools/gimpvectortool.c
* app/widgets/gimptoolbox-dnd.c
* app/xcf/xcf-load.c
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/paths.pdb
* tools/pdbgen/pdb/vectors.pdb: pass NULL as parent item to above
functions and add FIXMEs all over the place because there is some
more hacking needed to make adding with index = -1 (on top of the
current item) work again.
* app/pdb/image-cmds.c
* app/pdb/paths-cmds.c
* app/pdb/vectors-cmds.c: regenerated.
* app/core/gimpimage-duplicate.c: duplicate the original image's
tree structure in the copy.
* app/widgets/gimpitemtreeview.[ch]: add parent to GimpAddItemFunc,
add utility function gimp_item_tree_view_get_drop_index() which
figures where to add something dropped to an item tree.
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c: changed accordingly, using above
new GimpItemTreeView API.
Get rid of the last calls to gdk_window_set_title() and instead use
gdk_window_set_title(). The gdk_window_set_title() calls in
gimpdisplayshell-title.c is a legacy from the initial import of the
project.
When an import source has been overwritten with File -> Overwrite
<file.png>, or exported by whatever means, reflect this status in the
title bar of the image window. Do this by adding some string building
logic to gimp_display_shell_format_filename().
* app/widgets/gimpwindow.c: treat GimpCanvas as a text widget and
dispatch all key events to it before invoking menu shortcuts.
* app/display/gimpdisplayshell-callbacks.c: treat all events on the
empty display as unhandled, not handled.
* app/tools/gimptexttool.c: use the right API for invoking the proxy
text view's bindings. Handle some more cursor navigation request and
swallow text deletion requests we don't handle instead of always
doing what the delete key does.
* app/tools/tools-enums.[ch]: add enum GimpButtonPressType which can
be { NORMAL, DOUBLE, TRIPLE }
* app/tools/gimptool.[ch]: add press_type paramater to GimpTool::button_press()
* app/tools/gimp*tool.c
* app/tools/tool_manager.[ch]: changed accordingly.
* app/tools/gimptoolcontrol.[ch]: add members and API so tools can choose
to receive double and triple clicks.
* app/display/gimpdisplayshell-callbacks.c (gimp_display_shell_tool_events):
dispatch double and triple clicks to tools if they want them, and if they
became active by the preceding normal button press.
Add gimp_display_shell_sync_config() which copies the prefs settings
to the display shell and call it from gimp_display_shell_new() and
gimp_display_shell_fill().
The questionable while loops to get GimpCoords.direction into a proper
range were used in two places. This commit fixes the actual problematic
place where, under some rare circumstances, the code used to go into a
loop for a very long time.
2009-03-28 Michael Natterer <mitch@gimp.org>
Bug 555738 – Image display is wrong after undoing canvas size
enlargement
* app/display/gimpdisplayshell-handlers.c
(gimp_display_shell_size_changed_detailed_handler): call
gimp_display_shell_expose_full() because resizing the canvas can
leave all sorts of display areas unupdated otherwise.
svn path=/trunk/; revision=28230
2009-03-28 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-handlers.c
(gimp_display_shell_size_changed_detailed_handler): swallow the
code of gimp_display_shell_image_size_starts_to_fit() because it
didn't make things clearer. Add local variables instead to make
things more readable.
svn path=/trunk/; revision=28229
2009-03-28 Michael Natterer <mitch@gimp.org>
Bug 566575 – Warning when creating sample point and releasing Ctrl
key too late
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_ruler_button_press): call
gimp_display_shell_update_focus() after changing the tool so the
new tool has the right state.
svn path=/trunk/; revision=28226
2009-03-28 Michael Natterer <mitch@gimp.org>
Bug 555025 – Action GEGL box widgets weirdness
Must not set GDK_HINT_MIN_SIZE if we don't actually set a minimum
size, or the window will be shrinkable to zero and it won't
expand automatically when its contents' requisition grows.
* app/widgets/gimpdialogfactory.[ch]: add hackish API
gimp_dialog_factory_set,get_has_min_size() because GTK+ itself
has no API for querying a window's GdkWindowHints.
(gimp_dialog_factory_set_user_pos): set GDK_HINT_MIN_SIZE only if
the window was being marked as having a minimum size using above
new API.
* app/widgets/gimptoolbox.c (gimp_toolbox_set_geometry)
* app/display/gimpdisplayshell.c (gimp_display_shell_style_set):
call gimp_dialog_factory_set_has_min_size (window, TRUE).
svn path=/trunk/; revision=28224
2009-03-22 Michael Natterer <mitch@gimp.org>
* app/display/gimpcanvas.c
* app/display/gimpdisplayshell.c: use accessors for various
members of GTK+ structures that don't exist any longer when
GSEAL_ENABLE is defined.
svn path=/trunk/; revision=28192
Bug 575006 – Add preferences for snapping
* app/config/gimpdisplayconfig.[ch]
* app/config/gimprc-blurbs.h
* app/display/gimpdisplayshell.c: applied part of a patch from
Akkana Peck. This adds gimprc properties for the default values
used for snapping in new image windows. It also changes the
default value for "Snap to Canvas Edges" to TRUE. Let's test
this
for a while...
svn path=/trunk/; revision=28151
2009-03-12 Sven Neumann <sven@gimp.org>
Bug 573070 – crash when working with 1x3200 pixel image
* app/display/gimpdisplayshell.c
(gimp_display_shell_scale_changed):
make sure that x_src_dec and y_src_dec never become zero.
svn path=/trunk/; revision=28142
2009-02-20 Michael Natterer <mitch@gimp.org>
Bug 572156 – top left pixel position/coordinate is not 0,0 but 1,1
* app/display/gimpstatusbar.c
(gimp_statusbar_push_coords)
(gimp_statusbar_update_cursor): fix braino for
GIMP_CURSOR_PRECISION_PIXEL_CENTER: going to the pixel's
center doesn't need any rounding, it simply needs clipping
the coordinates' fractional parts, gah...
Review all tools' cursor precision:
* app/tools/gimpblendtool.c (gimp_blend_tool_init): set cursor
precision to SUBPIXEL.
* app/tools/gimptexttool.c (gimp_text_tool_init)
* app/tools/gimpmeasuretool.c (gimp_measure_tool_init)
* app/tools/gimpeditselectiontool.c (gimp_edit_selection_tool_init):
set cursor precision to PIXEL_BORDER.
svn path=/trunk/; revision=28053
2009-02-14 Sven Neumann <sven@gimp.org>
* app/core/gimpcoords-interpolate.c
* app/display/gimpdisplayshell-coords.c: applied patch from
Alexia
Death that fixes issues with the new stroke direction code
(bug #520078).
svn path=/trunk/; revision=28030
2009-02-10 Sven Neumann <sven@gimp.org>
* app/core/gimpcoords-interpolate.c
* app/core/gimpbrush-transform.c
* app/paint/gimppaintoptions.c
* app/display/gimpdisplayshell-coords.c: applied patch from
Alexia
Death that fixes the direction of brush rotation (bug #520078).
svn path=/trunk/; revision=28010
2009-02-10 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-coords.c
(gimp_display_shell_eval_event): applied patch from Alexia Death
that introduces smoothing for the stroke direction (bug
#520078).
svn path=/trunk/; revision=28009
2009-02-08 Michael Natterer <mitch@gimp.org>
Bug 520078 – Rotate brushes
Applied a slightly modified patch from Alexia Death:
* app/core/core-types.h (struct GimpCoords): add "direction" member.
* app/core/gimpcoords.c: take direction into account in mix(),
scalarprod(), length_squared(), manhattan_dist() and equal().
* app/core/gimpcoords-interpolate.c
(gimp_coords_interpolate_catmull): same here.
* app/display/gimpdisplayshell-coords.c
(gimp_display_shell_eval_event): same here.
* app/paint/gimppaintoptions.[ch]: add properties for direction
dynamics and adapt dynamics mixing accordingly.
* app/paint/gimpbrushcore.c (gimp_brush_core_interpolate):
"interpolate" direction too (in fact, just copy it from
last_coords since it doesn't change along a straight line).
* app/paint/gimppaintcore-stroke.c
(gimp_paint_core_stroke_emulate_dynamics): emulate direction too.
* app/tools/gimppaintoptions-gui.c: add GUI for direction dynamics.
svn path=/trunk/; revision=28001
2009-02-02 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-title.c: reverted last change.
It's
not helpful to use different strings for the same information
and
space is not crucial in the window title.
svn path=/trunk/; revision=27979
2009-01-29 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: removed gimp_image_get_type_string()
again.
* app/display/gimpdisplayshell-title.c
(gimp_display_shell_format_title): use the GimpImageBaseType
enum
instead.
* app/tools/gimptool.c (gimp_tool_oper_update): if the image is
empty and the tool can't handle that, display a message in the
statusbar telling the user about this.
svn path=/trunk/; revision=27970