After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 349341 - Selection tools with Alt+Shift or Alt+Ctrl should not check if pointer is in selection
Selection tools with Alt+Shift or Alt+Ctrl should not check if pointer is in ...
Status: RESOLVED FIXED
Product: GIMP
Classification: Other
Component: Tools
git master
Other All
: Normal minor
: 2.4
Assigned To: GIMP Bugs
GIMP Bugs
Depends on:
Blocks:
 
 
Reported: 2006-07-30 19:59 UTC by Raphaël Quinet
Modified: 2006-08-03 18:18 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Raphaël Quinet 2006-07-30 19:59:27 UTC
When a selection exists and the modifiers Alt+Ctrl or Alt+Shift are
pressed, the selection tools switch to the operation SELECTION_MOVE
(move the selected pixels) or SELECTION_MOVE_COPY (move a copy of the
selected pixels), but they do that only if the cursor is inside the
selection.  If the cursor is outside the selection, the mode is
SELECTION_MOVE_MASK (move the selection mask) as if only Alt was
pressed.

In app/tools/gimpselectiontool.c, gimp_selection_tool_oper_update()
adds a test for "move_layer" for the cases Alt+Ctrl and Alt+Shift.
"move_layer" is TRUE only if (x,y) is inside the selection.  If the
pointer is outside the selection, then "move_layer" is FALSE and the
cases Alt+Ctrl and Alt+Shift are ignored and fall back to the simple
Alt case (move the selection mask).

This behavior is confusing.  It would be better to move the seleted
pixels regardless of whether the pointer is inside or outside the
selection.  In other words, remove the boolean "move_layer".
Comment 1 Michael Natterer 2006-08-03 18:18:32 UTC
Fixed in CVS:

2006-08-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpchannel.c (gimp_channel_bounds)
	* app/core/gimpdrawable.c (gimp_drawable_mask_bounds)
	(gimp_drawable_mask_intersect): allow to pass in NULL return
	locations for any of the boundary return values.

	* app/tools/gimpselectiontool.c (gimp_selection_tool_oper_update):
	don't require hovering the selection for moving the selected
	pixels, since this can be distinguished by looking at the
	modifiers now. Check for the presence of any selected pixels
	instead. Fixes bug #349341.