Gimp/app/tools
Jehan e8b160a5e1 app: reset the scribbles at every new strokes.
Every time we press for a selection update, we will start with a blank
tri-map, instead of reusing previous "scribbles". In my various tests,
it felt like I would get better results this way. Also if you do some
mistakes (maybe getting off-border of your object in a previous stroke),
it would be much harder to fix, unless you are alway showing the
scribbles.

One can consider that once you edited the image selection, what is done
is done. You don't constantly edit the past, and your resulting
selection could have been done with any other selection tool (how it was
done doesn't matter anymore). This makes the tool actually stateless
in-between strokes.

Note that I reset the tri-map at the start of a stroke, rather than at
the end. This way, it still allows one to see the previous stroke (it
can be useful for verifying how it was done before undoing and
retrying).
2025-11-26 23:24:50 +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 app, libgimpwidgets: move gimp_prop_spin_scale_new() and… 2022-02-19 00:14:44 +01:00
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 Issue #8102: crash when using the clone tool. 2022-04-21 19:13:01 +02:00
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 app, libgimpwidgets: move gimp_prop_spin_scale_new() and… 2022-02-19 00:14:44 +01:00
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 app, libgimpwidgets: move gimp_prop_spin_scale_new() and… 2022-02-19 00:14:44 +01:00
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 app, libgimpwidgets: move gimp_prop_spin_scale_new() and… 2022-02-19 00:14:44 +01:00
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 app, libgimpwidgets: move GimpSpinScale to libgimpwidgets. 2022-02-17 23:13:42 +01:00
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 app, libgimpwidgets: move gimp_prop_spin_scale_new() and… 2022-02-19 00:14:44 +01:00
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: reset the scribbles at every new strokes. 2025-11-26 23:24:50 +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 app, libgimpwidgets: move gimp_prop_spin_scale_new() and… 2022-02-19 00:14:44 +01:00
gimprectangleselectoptions.h app: #pragma once in app/tools 2025-07-13 09:26:04 +02:00
gimprectangleselecttool.c
gimprectangleselecttool.h
gimpregionselectoptions.c app, libgimpwidgets: move gimp_prop_spin_scale_new() and… 2022-02-19 00:14:44 +01:00
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 app, libgimpwidgets: move gimp_prop_spin_scale_new() and… 2022-02-19 00:14:44 +01:00
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 app, libgimpwidgets: move GimpSpinScale to libgimpwidgets. 2022-02-17 23:13:42 +01:00
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 app, libgimpwidgets: move gimp_prop_spin_scale_new() and… 2022-02-19 00:14:44 +01:00
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 app, libgimp*: commit the newly generated *enums.c files. 2022-08-01 20:00:01 +02:00
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