2007-05-02 Martin Nordholts <martinn@svn.gnome.org>
When adjusting a rectangle it feels unintuitive that the center of
the rectangle when Ctrl is used lands on the corner that was used
to resize the rectangle. This commit changes the center of the
rectangle when Ctrl is used on a already-created rectangle to the
center of the rectangle when the user starts adjusting the size.
* app/tools/gimprectangletool.c (struct
_GimpRectangleToolPrivate): Added center_[xy]_on_fixed_center
members that keeps track on where the center of the rectangle
should be when the Ctrl modifier is used.
* app/tools/gimprectangletool.c: Added convenience function
gimp_rectangle_tool_get_fixed_center_coords.
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_button_press): Sets the
center_[xy]_on_fixed_center members depending on whether the button
press modifies an existing rectangle or creates a new one.
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_active_modifier_key): Adjusted to accomodate to
above mentioned changes.
svn path=/trunk/; revision=22374
2007-04-25 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpscrolledpreview.c: also use the middle mouse
button for panning.
* plug-ins/common/nova.c: override the default mouse handling of
the GimpScrolledPreview and allow to reposition the center using
the left mouse button. Fixes bug #364432.
* app/tools/gimprectangletool.c: formatting.
svn path=/trunk/; revision=22319
2007-03-31 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangleoptions.[ch]: made the
GimpRectangleOptionsPrivate struct public (ha ha).
(gimp_rectangle_options_gui): replaced the "Auto shrink selection"
toggle by a normal button that needs to be clicked explicitely.
* app/tools/gimprectangletool.c: access members of
GimpRectangleOptionsPrivate directly instead of reading them into
local variables using g_object_get(), this makes the code quite
more readable. Some code cleanup.
(gimp_rectangle_tool_button_release): get rid of the confusing
auto-shrink madness on button release...
(gimp_rectangle_tool_start)
(gimp_rectangle_tool_halt): ...instead, connect to the option's
auto shrink button and shrink on "clicked".
svn path=/trunk/; revision=22209
2007-03-30 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw_guides):
hardcode the result of sqrt(5).
svn path=/trunk/; revision=22196
2007-03-15 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_halt): check
if tool->display is there before dereferencing it (bug #418504).
(gimp_rectangle_tool_start): add "display" parameter and set
tool->display here.
(gimp_rectangle_tool_button_press): pass the display to start()
and don't set tool->display here.
svn path=/trunk/; revision=22125
2007-03-09 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: include "libgimpmath/gimpmathtypes.h"
instead of "libgimpmath/gimpmath.h".
* app/core/gimpbrush.h
* app/paint/gimppaintcore.h
* app/paint/gimpperspectiveclone.h
* app/text/gimptext.h
* app/tools/gimptransformtool.h: include gimpvector.h and
gimpmatrix.h explicitely where they are needed in public structs.
* app/*/*.c
* tools/pdbgen/pdb/paths.pdb: include "libgimpmath/gimpmath.h"
where needed.
* app/pdb/paths_cmds.c: regenerated.
svn path=/trunk/; revision=22084
2007-03-04 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.[ch]
* app/display/gimpdisplayshell-scale.c: only change the
remembered
last scale value if the last change occured more than a second
ago.
* app/tools/gimprectangletool.c: fixed compiler warnings.
svn path=/trunk/; revision=22040
2007-02-28 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangleselecttool.c
(gimp_rect_select_tool_rectangle_changed): don't change the
selection while the tool is active. Fixes bug #398185. Thanks to
Martin Nordholts for investigating this problem.
* app/tools/gimprectangletool.c: minor cleanup.
svn path=/trunk/; revision=22025
2007-02-27 Michael Natterer <mitch@gimp.org>
* app/tools/gimptoolcontrol.[ch]: added "gboolean wants_click"
member and getters/setters.
* app/tools/gimptool.[ch] (struct GimpTool): added members
in_click_distance, press_coords and press_time.
(gimp_tool_button_press): if the tool wants click events, record
press_coords and press_time.
(gimp_tool_motion): check if we are still in click distance.
(gimp_tool_button_release): ditto. If we are still in click
distance, synthesize a motion event back to the recorded
press_coords and send the tool release_type = CLICK.
(gimp_tool_check_click_distance): utility function which checks
the current coords and time against the recorded ones, using
gtk-double-click-time and gtk-double-click-distance as thresholds.
* app/tools/gimpcroptool.c
* app/tools/gimprectangleselecttool.c: request click events
and handle them.
* app/tools/gimprectangletool.[ch]: handle click events. Removed
gimp_rectangle_tool_no_movement().
svn path=/trunk/; revision=22016
2007-02-27 Michael Natterer <mitch@gimp.org>
Step one towards enabling tool cancellation by other means than
mouse button 3 and towards proper "clicked" semantics.
* app/tools/tools-enums.[ch]: added enum GimpButtonReleaseType
which can be one of { NORMAL, CANCEL, CLICK } (click is curently
unused).
* app/tools/gimptool.[ch] (GimpTool::button_release): added
"release_type" parameter.
(gimp_tool_button_release): if the state contains
GDK_BUTTON3_MASK, call the tool's button_release() with CANCEL,
use NORMAL otherwise.
* app/tools/gimpaligntool.c
* app/tools/gimpblendtool.c
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpbucketfilltool.c
* app/tools/gimpcolortool.c
* app/tools/gimpcroptool.c
* app/tools/gimpcurvestool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpforegroundselecttool.c
* app/tools/gimpfreeselecttool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimpmagnifytool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimpmovetool.c
* app/tools/gimppainttool.c
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.[ch]
* app/tools/gimpregionselecttool.c
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c (button_release): added
"release_type" parameters and get rid of own checks for
GDK_BUTTON3_MASK.
svn path=/trunk/; revision=22015
2007-02-09 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c: moved duplicated code to
utility function gimp_rectangle_tool_set_highlight().
svn path=/trunk/; revision=21878
2007-01-26 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c: applied patch from Joao
S. O. Bueno Calligaris that fixes rectangle resizing (bug
#400283).
svn path=/trunk/; revision=21784
2007-01-24 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c: implement keyboard navigation
as
in the spec but without pointer warping. Basically works but
needs
further tuning.
svn path=/trunk/; revision=21777
2007-01-24 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c: don't emit signals by name if
we
know the signal ID.
svn path=/trunk/; revision=21776
2007-01-24 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c: reverted previous change.
Keyboard navigation for the rectangle tools has been speced out
differently and changes to the spec should be discussed
beforehand.
svn path=/trunk/; revision=21775
2007-01-24 Kevin Cozens <kcozens@cvs.gnome.org>
* app/tools/gimprectangletool.c: Applied patch from Joao S. O. Bueno
Calligaris that allows size of rectangle selection to be changed via
the keyboard arrow keys. Ctrl + arrow increases size of selection in
the direction of the arrow. Ctrl + Shift + arrow decreases size of
selection.
svn path=/trunk/; revision=21773
2007-01-21 Raphael Quinet <raphael@gimp.org>
* app/display/gimpstatusbar.[ch]
* app/tools/gimptool.[ch]: add optional help text at the end of
the messages generated by gimp_statusbar_push_coords() and
gimp_statusbar_push_length().
* app/tools/gimpcolortool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpmovetool.c
* app/tools/gimprectangletool.c: use the updated functions.
* app/tools/gimpblendtool.c
* app/tools/gimpcolorpickertool.c: added status bar messages.
svn path=/trunk/; revision=21745
2006-12-30 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_synthesize_motion): restore old function
and
push a pause/resume to avoid tool redraws from the motion
handler.
svn path=/trunk/; revision=21616
2006-11-15 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.[ch]
* app/tools/gimprectangleselecttool.c: removed function from the
properties. Added getter and setter functions instead. Redraw
the
tool whenever the function changes.
2006-11-13 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c: reduced the size of the side
handles to two third the size of the corner handles.
2006-11-07 Sven Neumann <sven@gimp.org>
* app/dialogs/file-save-dialog.c: undef DEBUG_SPEW again.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw):
don't draw the handles while the rectangle is being moved.
2006-11-07 Sven Neumann <sven@gimp.org>
* app/tools/gimpdrawtool.[ch] (gimp_draw_tool_draw_corner):
improved highlighting.
(gimp_draw_tool_draw_arc_by_anchor): take width and height
arguments instead of radius_x and radius_y.
* app/tools/gimpiscissorstool.c
* app/tools/gimpvectortool.c: slightly increased handle sizes.
* app/tools/gimpmeasuretool.c: increased size of the end points.
* app/tools/gimpperspectiveclonetool.c: increased handle size.
* app/tools/gimprectangletool.c: renamed variables.
* app/tools/gimpsourcetool.c: use a single define for the target
size.
* app/tools/gimptransformtool.[ch]: increased handle size. Made
the area that can be grabbed identical to the displayed handle.
Replaced filled circle with a circle outline and a cross.
* app/tools/gimptransformtool-undo.c: follow renaming of define
in
gimptransformtool.h.
2006-11-06 Sven Neumann <sven@gimp.org>
* app/tools/gimpdrawtool.[ch] (gimp_draw_tool_draw_corner)
* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw):
highlight the handles on mouse-over.
2006-11-06 Sven Neumann <sven@gimp.org>
* app/tools/gimpdrawtool.[ch]: let gimp_draw_tool_draw_corner()
also handle north, south, east and west corners and allow for
filled corners.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw): simplified.
2006-11-05 Sven Neumann <sven@gimp.org>
* app/tools/gimpdrawtool.[ch]
* app/tools/gimprectangletool.c: changed the way that the
handles
are drawn. This is still work in progress.
2006-11-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.[ch]: made gimp_rectangle_tool_halt()
private. Get rid of some more local variables (use private->foo
instead). Fixed statusbar rectangle size display. Some indentation
cleanup.
2006-11-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcroptool.c
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.[ch]: moved stuff from
GimpTool::initialize() to GObject::constructor() and removed all
initialize functions entirely. initialize() only needs to be
implemented if the tool has a dialog or if initialization() can
fail. Also moved some type-checking casts after the
g_return_if_fail()s
2006-11-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcroptool.[ch]
* app/tools/gimpellipseselecttool.c
* app/tools/gimprectangleselecttool.[ch]
* app/tools/gimprectangletool.[ch]: removed dispose() and
finalize() implementations. The finalize() ones did nothing and
dispose() was only redundantly disconnecting from signals that
were connected using connect_object() anyway. Some cosmetic
cleanups all over the place.
2006-11-04 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c: merged all tool options notify
callbacks into a single one and added utility function
gimp_rectangle_tool_synthesize_motion() to improve
maintainability.
2006-11-04 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_motion): need
to subtract the snap_x and snap_y values from the coords before
calling ourselves recursively, otherwise we run into an infinite
recursion.
2006-11-04 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c: pause the draw tool earlier in
motion() so we don't get artifacts when the function changes.
Fixed inside_x and inside_y usage in oper_update(). Get rid of
some local variables in draw().
2006-11-04 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c: fixed snapping. Replaced lots of
g_object_get() by simply accessing private->member. Misc small
cleanups.
2006-09-26 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore.[ch]: added GError** parameter to
GimpPaintCore::start().
* app/tools/gimppainttool.c (button_press): display the error in
the statusbar.
* app/paint/gimppaintcore-stroke.c: pass a NULL error, effectively
swallowing mssages. Will fix that later.
* app/paint/gimpbrushcore.c
* app/paint/gimpclone.c
* app/paint/gimpsourcecore.c: changed accordingly. Set the error
instead of calling g_message().
* app/paint/gimpheal.c
* app/paint/gimpperspectiveclone.c: implement start() and bail out
early on indexed drawables instead of showing a g_message() in
other functions that are called later.
* app/tools/gimptool.[ch]: added GError** to GimpTool::initialize().
* app/tools/gimptool.c (gimp_tool_initialize): display the error
in the statusbar. Keep the external API GError-free.
* app/tools/gimprectangletool.[ch]: added GError** to
gimp_rectangle_tool_initialize().
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpcolorbalancetool.c
* app/tools/gimpcolorizetool.c
* app/tools/gimpcroptool.c
* app/tools/gimpcurvestool.c
* app/tools/gimphuesaturationtool.c
* app/tools/gimpimagemaptool.c
* app/tools/gimplevelstool.c
* app/tools/gimpperspectiveclonetool.c
* app/tools/gimpposterizetool.c
* app/tools/gimpthresholdtool.c
* app/tools/gimptransformtool.c: changed accordingly. Set the
errors in initialize() instead of using gimp_message().
* app/tools/gimpblendtool.c: implement initialize() and bail out
early on indexed images instead of showing a gimp_message() in
button_press().
* app/tools/gimpcroptool.c
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.[ch]: put back code for responding
to modifiers pressed after mouse1-down, at mitch's request.
* app/tools/gimprectangleoptions.[ch]
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.c
* app/tools/gimpselectionoptions.c: move "auto-shrink"
and "shrink-merged" from selection options to
rectangle options where they belong; now shown
for crop tool as well as rect select.
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]: add new actions for
toggling "fixed-aspect" and "fixed-center" options of
rectangle tools.
* app/tools/gimprectangletool.[ch]
* app/tools/gimprectangleselecttool.c
* app/tools/gimpcroptool.c: rely on new actions for
keyboard control, not on modifiers pressed after
mouse1-down.
* app/widgets/gimppropwidgets.c (gimp_prop_aspect_ratio_new):
some small bug-fixes.
* app/tools/gimprectangleoptions.[ch]: major revision. Got
rid of lots of unneeded getter/setter-clutter, simplified
set of options and appearance of gui. Still work in progress.
* app/tools/gimprectangleselectoptions.c
* app/tools/gimprectangletool.c: corresponding changes.
* app/display/gimpcanvas.[ch]
* app/tools/gimpdrawtool.[ch]: remove recently added code relating
to stippled xor drawing -- not handled well by some display
drivers.
* app/tools/gimprectangletool.c: improve drawing of handles.
Trying to implement some usability recommendations from
Peter Sikking: bigger handles, more feedback to user.
* app/display/gimpcanvas.[ch]: add
GIMP_CANVAS_STYLE_XOR_STIPPLED to set of styles.
* app/tools/gimpdrawtool.[ch]
(gimp_draw_tool_draw_rectangle_stippled): new function.
Needs a better stipple pattern, though.
* app/tools/gimprectangletool.c: bigger handles in corners,
and highlight thing that user is currently moving.
* app/widgets/gimprectangletool.c: even if constraining to boundaries,
keep updating rectangel when pointer goes outside boundaries.
Fixes bug #355740.
* app/widgets/gimppropwidgets.[ch]: add prop widget specially
for controlling aspect ratio.
* app/tools/gimprectangleoptions.ch]: use "aspect-numerator"
and "aspect-denominator" properties instead of "aspect",
and use new prop widget in gui to set and display them.
* app/tools/gimprectangletool.c: calculate aspect from
numerator and denominator.
2006-09-12 Michael Natterer <mitch@gimp.org>
Added new tool API for modifier key events while the tool
is active and implement it in the rect select and crop tools.
Fixes bug #316156 and bug #355302.
* app/tools/gimptool.[ch]: added GimpTool::active_modifier_key()
and public function gimp_tool_set_active_motifier_state(). Remember
the active_state at button_press and reset it on button_release.
Ignore releases of modifiers that were pressed at button_press (but
only ignore them once).
* app/tools/tool_manager.[ch]: added wrapper
tool_manager_active_modifier_state_active().
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_events): return FALSE for all modifiers even
when mouse button 1 is pressed.
(gimp_display_shell_canvas_tool_events): when bouse button 1 is
pressed *and* the tool is active, dispatch the new active_modifier
events to tools.
* app/tools/gimpcroptool.c
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.[ch]: implement active_modifier_key()
instead of modifier_key().
2006-09-12 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
* app/tools/gimpforegroundselecttool.c
* app/tools/gimpmovetool.c
* app/tools/gimppainttool.c
* app/tools/gimprectangletool.c
* app/tools/gimpselectiontool.c
* app/tools/gimpsourcetool.c
* app/tools/gimpvectortool.c: back out change committed on
2006-08-21 which passed modifier events to tools even while mouse1
was down. This generated way too much unexpected events that would
have to be special cased in all tools. Will implement an anternate
solution soon.
* app/tools/tools-enums.[ch]: add GimpRectangleConstraint
enum.
* app/tools/gimprectangletool.[ch]: replace "constrain"
boolean with "constraint" enum property. Implement
constraints in motion handler -- the implementation
is rather elegant but pretty tricky.
* app/tools/gimpcroptool.c: constrain to image bounds,
or to active drawable bounds if "current layer only"
option is checked.
* app/tools/gimpellipseselecttool.c
* app/tools/gimprectangleselecttool.c: no constraint.
This addresses bug #353936 -- I would say fixes it, but it
probably needs some fine-tuning. Also perhaps fixes
bug #329817 a bit better than before.
2006-09-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimptool.[ch]: added gimp_tool_get_options() so tools
don't need to incude "core/gimptoolinfo.h" just to get to
their options.
* app/tools/gimp*tool.h: added macros GIMP_FOO_TOOL_GET_OPTIONS()
which return specific tool options types and do all casting
themselves.
* app/tools/*.c: use the new macros and don't include
"core/gimptoolinfo.h" in most files.
* app/tools/gimpcolorpickertool.c (gimp_color_picker_tool_register):
make it use the parent context's FG and BG.
* app/tools/gimpcolortool.c (gimp_color_tool_real_picked): set the
color on the tool's options, not on the user context.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_motion):
respect "fixed-center" constraint even if "fixed-aspect"
or "aspect-square" constraints are active.
* app/display/gimpdisplayshell-callbacks.c: allow modifier key events
for Shift and Control to be propagated even if button1 is down.
* app/tools/gimpclonetool.c
* app/tools/gimpcroptool.c
* app/tools/gimpforegroundselecttool.c
* app/tools/gimpmovetool.c
* app/tools/gimppainttool.c
* app/tools/gimpvectortool.c: change modifier_key method
to prevent any bad consequences.
* app/tools/gimprectangletool.[ch]: add modifier_key handler, and use it
to toggle "make-square" if Shift is pressed while button1 is down, and
"fixed-center" if Control is pressed while button1 is down.
* app/tools/gimprectangleselecttool.c (gimp_rectangle_tool_modifier_key):
call rectangle tool modifer_key method after chaining up.
2006-08-14 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c: changed the limits for "pressx"
and "pressy". It's wrong to disallow negative values here.
2006-08-08 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangleoptions.c
(gimp_rectangle_options_interface_get_type): made
GimpToolOptions a
prerequisite of the GimpRectangleOptions interface.
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_interface_get_type): made GimpDrawTool a
prerequisite of the GimpRectangleTool interface.
2006-07-31 Karine Delvare <edhel@gimp.org>
* app/tools/gimprectangletool.c: Applied patch from Karl Günter
Wünsch which Corrects the asyncronicity between mouse cursor and
selected edge on egde resizing. Partial fix for bug #349337.
* app/tools/gimprectangleselecttool.c: if there is a floating selection
and mouse is clicked outside it without movement, anchor it.
* app/tools/gimprectangletool.c: corner handle area was scaling
improperly when image was zoomed.
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.c: fix three issues identified by
jimmac: (1) when shift or ctrl are pressed, should start a new
rect regardless of pointer loc; (2) zoom was incorrectly affecting
width of sensitive areas; (3) must emit "rectangle-changed" after
keyboard-driven rectangle movement.
* app/tools/gimprectangleselecttool.c: handle situations
where the user "flips" the rectangle while modifying it.
This solution is not perfect, but better than before.
* app/tools/gimprectangletool.c: remove unneeded variable.
Here is the big change-over, finally.
* app/tools/gimprectselecttool.[ch]: removed.
* app/tools/Makefile.am
* app/tools/gimp-tools.c
* app/tools/gimpellipseselecttool.c
* app/tools/gimpellipseselecttool.h
* app/tools/gimpnewrectselectoptions.c
* app/tools/gimpnewrectselectoptions.h
* app/tools/gimpnewrectselecttool.c
* app/tools/gimpnewrectselecttool.h
* app/tools/gimpselectionoptions.c
* app/widgets/gimptoolbox.c
* menus/image-menu.xml.in: get rid of the "new" in everything
referring to the new rect select tool, except filenames. This
will wait for yosh to perform cvs-magic-foo.
* app/tools/gimprectangleoptions.[ch]
* app/tools/gimprectangletool.[ch]: fix a couple of minor
problems that popped up during testing.
* app/tools/gimpcroptool.c
* app/tools/gimpellipseselecttool.c
* app/tools/gimprectangletool.[ch]: code cleanups
* app/tools/gimpnewrectselecttool.[ch]: try to do what
the user intuitively expects when deciding which selection
operation to perform. When modifying an existing rectangle,
always use the operation with which it was created.
2006-06-07 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_initialize):
initialize guide with the option's guide value.
(gimp_rectangle_tool_notify_guide): always sync with the
option's
guide value, even when tool->display is NULL.
2006-06-06 Michael Natterer <mitch@gimp.org>
* app/tools/gimpnewrectselecttool.c
(gimp_new_rect_select_tool_cancel)
(gimp_new_rect_select_tool_rectangle_changed): flush the image
after changing it.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_halt): don't
flush it here.
2006-06-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw): use
GimpDrawTool API, not GimpCanvas one. Some cleanup.
2006-06-05 Michael Natterer <mitch@gimp.org>
* app/tools/tools-enums.[ch]: removed enum GimpRectangleMode.
* app/tools/gimprectangletool.[ch]: added virtual function
GimpRectangleTool::cancel(). Added public wrapper for it. Removed
coordinates paramaters from gimp_rectangle_tool_execute(). Removed
gimp_rectangle_tool_response(), need to call either execute() or
cancel() now. Added gimp_rectangle_tool_halt() which disconnects
the tool from the display without canceling it.
* app/tools/gimpcroptool.c: changed accordingly.
* app/tools/gimpnewrectselecttool.c: moved the rectangle creating
code from the execute() implementation to the new function
gimp_new_rect_select_tool_rect_select(). Added cancel()
implementation which pops the remembered undo step if
appropriate. Call the new rect_select() wrapper from
rectangle_changed() so we don't create the rectangle on both
button_release *and* execute(), breaking modifiers and stuff.
* app/tools/gimprectangletool.[ch]: add new signal
"rectangle-changed" and method rectangle_changed.
Emit them on button release and when dimensions are
changed in controls.
* app/tools/gimpnewrectselecttool.c: use rectangle_changed
method to change selection, undoing previous change if
necessary.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_button_press):
if function is RECT_CREATING, start a new rectangle.
* app/tools/gimpnewrectselecttool.c: remove g_printerr statement that
mitch added for debugging.
2006-06-02 Michael Natterer <mitch@gimp.org>
* cursors/Makefile.am
* cursors/cursor-corner-bottom-left.png
* cursors/cursor-corner-bottom-right.png
* cursors/cursor-corner-top-left.png
* cursors/cursor-corner-top-right.png
* cursors/cursor-side-bottom.png
* cursors/cursor-side-left.png
* cursors/cursor-side-right.png
* cursors/cursor-side-top.png
* cursors/xbm/cursor-corner-bottom-left-mask.xbm
* cursors/xbm/cursor-corner-bottom-left.xbm
* cursors/xbm/cursor-corner-bottom-right-mask.xbm
* cursors/xbm/cursor-corner-bottom-right.xbm
* cursors/xbm/cursor-corner-top-left-mask.xbm
* cursors/xbm/cursor-corner-top-left.xbm
* cursors/xbm/cursor-corner-top-right-mask.xbm
* cursors/xbm/cursor-corner-top-right.xbm
* cursors/xbm/cursor-side-bottom-mask.xbm
* cursors/xbm/cursor-side-bottom.xbm
* cursors/xbm/cursor-side-left-mask.xbm
* cursors/xbm/cursor-side-left.xbm
* cursors/xbm/cursor-side-right-mask.xbm
* cursors/xbm/cursor-side-right.xbm
* cursors/xbm/cursor-side-top-mask.xbm
* cursors/xbm/cursor-side-top.xbm: new cursors for edge and corner
resizing. They perfectly align with the small crosshair and can be
used together with tool cursors and cursor modifiers.
* cursors/gimp-tool-cursors.xcf: add them here too.
* app/widgets/widgets-enums.h: add them to the GimpCursorType enum.
* app/widgets/gimpcursor.c: add them here too.
* app/display/gimpdisplayshell-cursor.c: treat them like the small
crosshair (don't replace them by the small crosshair but use them
as-is). Also allow the bad modifier with the large crosshair.
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_cursor_update): use the new cursors. Don't
call gimp_tool_set_cursor() here.
(gimp_rectangle_tool_response): reset "function" to RECT_CREATING
when resetting the tool.
* app/tools/gimpselectiontool.[ch] (struct GimpSelectionTool):
added boolean member "allow_move" which defalts to TRUE.
(gimp_selection_tool_oper_update): don't move masks, floating
selections or anything when "allow_move" is FALSE. Changed
behavior of click inside a selection to simply create a new
selection, need to press alt+shift now to drag-float the
selection. Please test this, it's apretty fundamental change!
(gimp_selection_tool_cursor_update): use the tool's configured
cursor instead of always GIMP_CURSOR_MOUSE, so this function can
be called after gimp_rectangle_tool_cursor_update() to add the
plus, minus etc. modifiers.
* app/tools/gimpnewrectselecttool.c: implement
GimpTool::cursor_update() and call
gimp_rectangle_tool_cursor_update() from there. Chain up to get
the plus, minus etc. modifiers added.
Re-enble selection moving:
(gimp_new_rect_select_tool_oper_update): set GimpSelectionTool's
"allow_move" to FALSE unless the rectangle tool is in an idle
state.
(gimp_new_rect_select_tool_button_press): allow a selection moving
to be started if the rectangle tool is idle. Fall back to starting
a rect select if gimp_selection_tool_start_edit() returned FALSE.
* app/tools/gimprectangletool.[ch]: add "constrain" property
to specify whether to clip at image bounds when computing
dimensions.
* app/tools/gimpcroptool.c
* app/tools/gimpnewrectselecttool.c: set "constrain" to TRUE.
* app/tools/gimpellipseselecttool.c: set "constrain" to FALSE.
Hopefully fixes bug #329817.