GNOME Bugzilla – Bug 349341
Selection tools with Alt+Shift or Alt+Ctrl should not check if pointer is in selection
Last modified: 2006-08-03 18:18:32 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".
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.