* 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.
2006-03-26 Karine Delvare <edhel@gimp.org>
* app/tools/gimpcropoptions.c
* app/tools/gimprectangleoptions.[ch]
* app/tools/gimprectangletool.[ch]: moved options gui creation
from the tool to the options.
* app/tools/gimpselectionoptions.c
* app/tools/gimpnewrectselecttool.[ch]
* app/tools/gimpellipseselecttool.[ch]: ported ellipse selection
tool to the new rectangle interface.
2006-02-20 Karine Delvare <kdelvare@nerim.net>
* app/tools/gimprectangletool.c: zero division check should be
changed according to the aspect redefinition
2006-02-07 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c: applied a patch from Dennis
Bjorklund that prevents a possible division by zero and fixes the
calculation of the center point.
2006-01-18 Michael Natterer <mitch@gimp.org>
* app/config/config-types.c: define GIMP_PARAM_STATIC_STRINGS
which is G_PARAM_STATIC_NAME|NICK|BLURB. Also define
GIMP_PARAM_READABLE, _WRITABLE and _READWRITE which include
GIMP_PARAM_STATIC_STRINGS.
* app/*/*.c: use them for all object properties so their
strings are not copied.
* app/tools/gimprectangletool.c: handle fixed_width,
fixed_height, and fixed_aspect in a reasonable way.
Also don't crash when user modifies aspect of a
nonexistent rectangle, and disconnect notify
handler in dispose.
* app/tools/gimprectangletool.c: don't crash when
user modifies width/height of nonexistent rectangle, and
make sure to disconnect option notify handlers in dispose.
Should fix bug #322396.
* app/tools/gimprectangletool.c:
* app/tools/gimpnewrectselecttool.c Make clicking inside an existing
selection create rect matching the marching ants.
* app/tools/gimpcroptool.c
* app/tools/gimpnewrectselecttool.c
* app/tools/gimprectangletool.c
* app/tools/gimprectangletool.h: move tool_control out of rectangle
tool and into users of it, and make rect select execute on leaving
but crop tool not. Also rename functions and clean up formatting
a bit.