Gimp/app/tools
Jehan fe39d68caa app: do not process when fully painting inside/outside selection in…
… respectively Add or Subtract modes.

When all the "scribbles" are already inside the fully selected area, it
is likely unneeded to recompute the paint selection (it's not entirely
true, algorithmically-wise, but workflow-wise, it makes sense: if you
are not happy with your selection and want to add some parts of the
image, you would obviously "paint" in the area which you want to add in.

And reciprocally for removing some of the selection, you'd paint within
the existing selection.

This also cleans out some of the logic in the button_press() code, where
we were adding the initial "scribble" to the mask. In original code,
when clicking without any motion, what was happening was that you were
only adding this one round selection and nothing else was happening,
which I always found weird (when you want to add some tiny piece of the
image into the selection, you may not have a lot of space to move and
would still want to do a quick click while hoping it will compute a bit
more into the selection). Now the new code anyway computes during
button_release() so adding this initial small-round mask is even more
unneeded.

Last, I am moving more of the motion() code into button_release().
2025-11-26 23:06:24 +01:00
..
gimp-tool-options-manager.c app: Make the layer auto expand options shared between tools 2023-11-25 16:19:43 +00:00
gimp-tool-options-manager.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimp-tools.c app: rename GimpContainer's "children-type" property to "child-type" 2025-07-18 08:19:13 +02:00
gimp-tools.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpairbrushtool.c app: Add pattern to context props for tools supporting auto-expand 2023-11-25 16:19:43 +00:00
gimpairbrushtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpalignoptions.c app, menus: vectors -> path in dialog and action identifiers 2025-07-07 16:16:48 +02:00
gimpalignoptions.h app, pdb, libgimp: use "#pragma once" instead of: 2025-07-13 03:21:37 +02:00
gimpaligntool.c app: globally block editing vector and link layers. 2025-10-08 23:21:59 +02:00
gimpaligntool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpbrightnesscontrasttool.c
gimpbrightnesscontrasttool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpbrushtool.c app: action names set in GimpToolControl don't need the group name appended. 2023-04-12 22:07:08 +02:00
gimpbrushtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpbucketfilloptions.c app: make GimpContainerView behave like a normal widget 2025-08-01 10:02:37 +02:00
gimpbucketfilloptions.h app, pdb, libgimp: use "#pragma once" instead of: 2025-07-13 03:21:37 +02:00
gimpbucketfilltool.c app: globally block editing vector and link layers. 2025-10-08 23:21:59 +02:00
gimpbucketfilltool.h app, pdb, libgimp: use "#pragma once" instead of: 2025-07-13 03:21:37 +02:00
gimpbycolorselecttool.c app, libgimp, pdb, plug-ins: getting rid of some GimpRGB usage. 2024-02-11 23:28:02 +01:00
gimpbycolorselecttool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpcageoptions.c
gimpcageoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpcagetool.c app: add accessors for GimpDrawableFilter::temporary and use them 2025-05-31 14:14:02 +02:00
gimpcagetool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpcloneoptions-gui.c
gimpcloneoptions-gui.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpclonetool.c app: Make the layer auto expand options shared between tools 2023-11-25 16:19:43 +00:00
gimpclonetool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpcoloroptions.c
gimpcoloroptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpcolorpickeroptions.c
gimpcolorpickeroptions.h
gimpcolorpickertool.c app: globally block editing vector and link layers. 2025-10-08 23:21:59 +02:00
gimpcolorpickertool.h
gimpcolortool.c app, libgimp, pdb, plug-ins: gimp_context_[gs]et_foreground() now using GeglColor. 2024-02-11 23:28:02 +01:00
gimpcolortool.h app: some more GimpRGB to GeglColor port. 2024-02-11 23:28:02 +01:00
gimpconvolvetool.c app: Add pattern to context props for tools supporting auto-expand 2023-11-25 16:19:43 +00:00
gimpconvolvetool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpcropoptions.c
gimpcropoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpcroptool.c app: big porting of weak pointers to g_set,clear_weak_pointer() 2023-05-22 18:16:09 +02:00
gimpcroptool.h
gimpcurvestool.c tools, operation: Add support for loading PS Curve presets 2025-05-22 18:52:30 +00:00
gimpcurvestool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpdodgeburntool.c
gimpdodgeburntool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpdrawtool.c Adding on canvas text for equidistance snapping visualization 2023-07-25 15:31:16 +02:00
gimpdrawtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpeditselectiontool.c tools: Don't update position if no prior moves 2025-11-22 05:17:00 +00:00
gimpeditselectiontool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpellipseselecttool.c
gimpellipseselecttool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimperasertool.c
gimperasertool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpfilteroptions.c app: the "color-options-expanded" filter option is now bogus. 2025-01-10 23:43:31 +01:00
gimpfilteroptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpfiltertool-settings.c
gimpfiltertool-settings.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpfiltertool-widgets.c app/tools: Use NDE filter's drawable for on-canvas widgets 2025-06-12 15:11:31 +00:00
gimpfiltertool-widgets.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpfiltertool.c Issue #15206: do not initialize transform tools when swapping tools… 2025-11-08 11:26:04 +01:00
gimpfiltertool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpflipoptions.c
gimpflipoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpfliptool.c
gimpfliptool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpforegroundselectoptions.c app: Specify Levels meaning for translation 2024-07-14 01:31:24 +00:00
gimpforegroundselectoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpforegroundselecttool.c tools: Don't run Foreground Selection without strokes 2025-06-11 19:49:52 +00:00
gimpforegroundselecttool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpforegroundselecttoolundo.c app: big porting of weak pointers to g_set,clear_weak_pointer() 2023-05-22 18:16:09 +02:00
gimpforegroundselecttoolundo.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpfreeselecttool.c
gimpfreeselecttool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpfuzzyselecttool.c app: rework and fix the logic for copy-pasting multiple drawables. 2022-11-12 18:28:58 +01:00
gimpfuzzyselecttool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpgegltool.c app: Make block-listing of GIMP operations optional 2025-08-03 21:38:28 +00:00
gimpgegltool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpgenerictransformtool.c Make transform matrix selectable 2023-06-21 21:02:23 +00:00
gimpgenerictransformtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpgradientoptions.c
gimpgradientoptions.h
gimpgradienttool-editor.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpgradienttool-editor.h
gimpgradienttool.c app: add accessors for GimpDrawableFilter::temporary and use them 2025-05-31 14:14:02 +02:00
gimpgradienttool.h
gimpguidetool.c gimpguidetool: fix somewhat pointless warning about uninitalized variable 2023-05-20 18:47:14 +02:00
gimpguidetool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimphandletransformoptions.c
gimphandletransformoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimphandletransformtool.c
gimphandletransformtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimphealtool.c app: Add pattern to context props for tools supporting auto-expand 2023-11-25 16:19:43 +00:00
gimphealtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimphistogramoptions.c
gimphistogramoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpinkoptions-gui.c app: mark missing tool option as translatable 2024-01-18 13:20:21 +00:00
gimpinkoptions-gui.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpinktool.c app: Add pattern to context props for tools supporting auto-expand 2023-11-25 16:19:43 +00:00
gimpinktool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpiscissorsoptions.c
gimpiscissorsoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpiscissorstool.c tools: Close iscissors curve on pressing Enter 2025-05-11 16:23:12 +00:00
gimpiscissorstool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimplevelstool.c tools, operation: Add support for loading PS Levels presets 2025-05-22 18:52:30 +00:00
gimplevelstool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpmagnifyoptions.c
gimpmagnifyoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpmagnifytool.c app: globally block editing vector and link layers. 2025-10-08 23:21:59 +02:00
gimpmagnifytool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpmeasureoptions.c
gimpmeasureoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpmeasuretool.c app: globally block editing vector and link layers. 2025-10-08 23:21:59 +02:00
gimpmeasuretool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpmoveoptions.c tools: Connect MoveOptions and TransformOptions to icon size 2025-04-04 10:46:23 +00:00
gimpmoveoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpmovetool.c app: globally block editing vector and link layers. 2025-10-08 23:21:59 +02:00
gimpmovetool.h app, pdb, libgimp: use "#pragma once" instead of: 2025-07-13 03:21:37 +02:00
gimpmybrushoptions-gui.c core, paint, tools: Port to MyPaint Brushes2 2025-07-09 22:14:42 +00:00
gimpmybrushoptions-gui.h
gimpmybrushtool.c tools: Fix missing cursor for MyPaint Brush tool 2025-10-03 22:14:52 +00:00
gimpmybrushtool.h
gimpnpointdeformationoptions.c
gimpnpointdeformationoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpnpointdeformationtool.c
gimpnpointdeformationtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpoffsettool.c pdb, operations, tool: Replace GimpContext with GeglColor... 2024-11-29 00:29:36 -05:00
gimpoffsettool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpoperationtool.c app: auxiliary input pads should have nicer names as registered by the operation. 2024-08-13 22:32:44 +00:00
gimpoperationtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimppaintbrushtool.c app: Add pattern to context props for tools supporting auto-expand 2023-11-25 16:19:43 +00:00
gimppaintbrushtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimppaintoptions-gui.c tools: Hide Force slider for Pencil Tool 2025-04-11 02:58:42 +00:00
gimppaintoptions-gui.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimppaintselectoptions.c app/tools: Add shortcuts for Paint Select modes 2024-10-05 14:54:20 +00:00
gimppaintselectoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimppaintselecttool.c app: do not process when fully painting inside/outside selection in… 2025-11-26 23:06:24 +01:00
gimppaintselecttool.h app: do not process when fully painting inside/outside selection in… 2025-11-26 23:06:24 +01:00
gimppainttool-paint.c app: Blink lock when layer expansion is prevented by lock 2023-11-25 16:19:43 +00:00
gimppainttool-paint.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimppainttool.c app: globally block editing vector and link layers. 2025-10-08 23:21:59 +02:00
gimppainttool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimppathoptions.c app, desktop: update demo tour for vector layers. 2025-08-29 13:15:24 +02:00
gimppathoptions.h path, tools, pdb: UX updates to vector layers 2025-08-17 02:20:19 +00:00
gimppathtool.c app: edit vector layer with path tool as default edit action. 2025-10-22 19:33:58 +02:00
gimppathtool.h app: improve layer and path selection logic. 2025-10-15 21:07:55 +02:00
gimppenciltool.c app: Add pattern to context props for tools supporting auto-expand 2023-11-25 16:19:43 +00:00
gimppenciltool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpperspectiveclonetool.c app: action names set in GimpToolControl don't need the group name appended. 2023-04-12 22:07:08 +02:00
gimpperspectiveclonetool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpperspectivetool.c
gimpperspectivetool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimppolygonselecttool.c
gimppolygonselecttool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimprectangleoptions.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimprectangleoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimprectangleselectoptions.c
gimprectangleselectoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimprectangleselecttool.c
gimprectangleselecttool.h
gimpregionselectoptions.c
gimpregionselectoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpregionselecttool.c app: mask colors are GeglColor. 2024-02-11 23:28:03 +01:00
gimpregionselecttool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimprotatetool.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimprotatetool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpsamplepointtool.c
gimpsamplepointtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpscaletool.c
gimpscaletool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpseamlesscloneoptions.c
gimpseamlesscloneoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpseamlessclonetool.c tools: Update Seamless Clone paste check 2025-07-31 14:49:35 +00:00
gimpseamlessclonetool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpselectionoptions.c tools, libgimpwidgets: Connect SelectionOptions to icon size 2024-08-15 19:07:14 +00:00
gimpselectionoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpselectiontool.c app: globally block editing vector and link layers. 2025-10-08 23:21:59 +02:00
gimpselectiontool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpsheartool.c
gimpsheartool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpsmudgetool.c app: Add pattern to context props for tools supporting auto-expand 2023-11-25 16:19:43 +00:00
gimpsmudgetool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpsourcetool.c app: get rid of unused variable warning. 2023-04-20 15:38:17 +02:00
gimpsourcetool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptextoptions.c libgimpwidgets, theme: Group radio buttons together 2025-11-15 02:50:17 +00:00
gimptextoptions.h app, pdb, libgimp: use "#pragma once" instead of: 2025-07-13 03:21:37 +02:00
gimptexttool-editor.c tools: prevent on-canvas text editor from being dragged outside the image bounds 2025-10-31 15:39:10 +01:00
gimptexttool-editor.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptexttool.c tools: destry text style editor each time a textbox is selected 2025-10-31 15:39:10 +01:00
gimptexttool.h move style_overlay_offset_[xy] to text_layer 2025-10-31 15:39:10 +01:00
gimpthresholdtool.c
gimpthresholdtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptilehandleriscissors.c
gimptilehandleriscissors.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptool-progress.c
gimptool-progress.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptool.c app: show a menu path to advertize how to "Rasterize" and blink the selected layer. 2025-10-15 14:57:36 +02:00
gimptool.h app: globally block editing vector and link layers. 2025-10-08 23:21:59 +02:00
gimptoolcontrol.c app: new double action "tools-mypaint-brush-pixel-size-set", used as… 2022-08-17 14:20:18 +02:00
gimptoolcontrol.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptooloptions-gui.c
gimptooloptions-gui.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptools-utils.c app: show a menu path to advertize how to "Rasterize" and blink the selected layer. 2025-10-15 14:57:36 +02:00
gimptools-utils.h app: show a menu path to advertize how to "Rasterize" and blink the selected layer. 2025-10-15 14:57:36 +02:00
gimptransform3doptions.c
gimptransform3doptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptransform3dtool.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimptransform3dtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptransformgridoptions.c
gimptransformgridoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptransformgridtool.c tools: Fix crash in passthrough composited preview 2025-08-15 06:03:13 +00:00
gimptransformgridtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptransformgridtoolundo.c app: big porting of weak pointers to g_set,clear_weak_pointer() 2023-05-22 18:16:09 +02:00
gimptransformgridtoolundo.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptransformoptions.c tools: Connect MoveOptions and TransformOptions to icon size 2025-04-04 10:46:23 +00:00
gimptransformoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimptransformtool.c app: globally block editing vector and link layers. 2025-10-08 23:21:59 +02:00
gimptransformtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpunifiedtransformtool.c
gimpunifiedtransformtool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpwarpoptions.c app: big porting of weak pointers to g_set,clear_weak_pointer() 2023-05-22 18:16:09 +02:00
gimpwarpoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimpwarptool.c app: add accessors for GimpDrawableFilter::temporary and use them 2025-05-31 14:14:02 +02:00
gimpwarptool.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
meson.build Declare gexiv2 dependency on many targets (due to gimpmetadata.h) 2025-10-03 18:31:53 -03:00
tool_manager.c Issue #15206: do not initialize transform tools when swapping tools… 2025-11-08 11:26:04 +01:00
tool_manager.h Issue #15206: do not initialize transform tools when swapping tools… 2025-11-08 11:26:04 +01:00
tools-enums.c
tools-enums.h app, pdb, libgimp: use "#pragma once" instead of: 2025-07-13 03:21:37 +02:00
tools-types.h app, pdb, libgimp: use "#pragma once" instead of: 2025-07-13 03:21:37 +02:00