Gimp/app/tools
Ell 45c172a885 Bug 795257 - Segmentation fault crash using the clone tool
Commit f5cb1fed85, which performed
brush outline generation in GimpPaintTool in synchrony with the
paint thread, wasn't enough, since GimpSourceTool could still call
gimp_brush_tool_create_outline() directly during its
GimpDrawTool::draw() method, leading to the same race condition
when executed concurrently with the paint thread.

Partially revert the above commit, so that outline generation is
handled as before, as far as GimpPaintTool is concenered.  Instead,
add GimpPaintTool::{start,end,flush}_paint() virtual functions; the
first two are called when starting/ending painting using the paint
thread, while the third is called during the display-update
timeout, while the main thread and the paint thread are
synchronized.  This allows subclasses to perform non-thread-safe
actions while the threads are synchronized.

Override these functions in GimpBrushTool, and cache the brush
boundary in the flush() function.  Use the cached boundary in
gimp_brush_tool_create_outline() while painting, to avoid the above
race condition, both when this function is called through
GimpPaintTool, and through GimpSourceTool.
2018-04-14 10:14:58 -04:00
..
.gitignore enums: add intermediate generated enum files to .gitignore 2017-08-24 15:35:27 -04:00
gimp-tools.c Bug 795230 - Rename Blend tool and provide PDB compatibility 2018-04-14 00:52:20 +02:00
gimp-tools.h
gimpairbrushtool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimpairbrushtool.h
gimpalignoptions.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimpalignoptions.h
gimpaligntool.c app: add gimp_image_pick_vectors(), remove gimp_draw_tool_on_vectors() 2017-06-22 11:35:57 +02:00
gimpaligntool.h
gimpbrightnesscontrasttool.c Bug 792470 - Some filters e.g. "Levels" are not added to "Repeat last" history 2018-01-14 15:42:29 +01:00
gimpbrightnesscontrasttool.h Bug 776503 - brightness-contrast in split preview mode changes... 2016-12-26 17:50:11 +01:00
gimpbrushtool.c Bug 795257 - Segmentation fault crash using the clone tool 2018-04-14 10:14:58 -04:00
gimpbrushtool.h Bug 795257 - Segmentation fault crash using the clone tool 2018-04-14 10:14:58 -04:00
gimpbucketfilloptions.c Bug 553855 - Bucket fill colour is always blended with filled pixel colour... 2016-09-15 12:24:37 +02:00
gimpbucketfilloptions.h Bug 553855 - Bucket fill colour is always blended with filled pixel colour... 2016-09-15 12:24:37 +02:00
gimpbucketfilltool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimpbucketfilltool.h
gimpbycolorselecttool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimpbycolorselecttool.h
gimpcageoptions.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpcageoptions.h
gimpcagetool.c app: use a lot of g_clear_object() and g_clear_pointer() 2017-07-15 18:42:44 +02:00
gimpcagetool.h Bug 794996 - Misc. typo fixes in comments in app/ 2018-04-08 21:25:56 +02:00
gimpcloneoptions-gui.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpcloneoptions-gui.h
gimpclonetool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimpclonetool.h
gimpcoloroptions.c Bug 776417 - improve Sample Average and Sample Merged description. 2017-01-03 04:21:42 +01:00
gimpcoloroptions.h app: clean up a lot of werid code in GimpColorOptions and GimpFilterOptions 2016-05-13 22:06:14 +02:00
gimpcolorpickeroptions.c app: remember the modes of the color picker info window's GimpColorFrames 2017-11-12 20:33:42 +01:00
gimpcolorpickeroptions.h app: remember the modes of the color picker info window's GimpColorFrames 2017-11-12 20:33:42 +01:00
gimpcolorpickertool.c app: remember the modes of the color picker info window's GimpColorFrames 2017-11-12 20:33:42 +01:00
gimpcolorpickertool.h
gimpcolortool.c app: add gimp_widget_blink(); use instead of gimp_dockable_blink() 2017-10-28 10:07:10 -04:00
gimpcolortool.h app: change GimpColorTool to not touch tool->display and tool->drawable 2017-06-30 21:23:29 +02:00
gimpconvolvetool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimpconvolvetool.h
gimpcropoptions.c Bug 770689 - Custom transparency controller for dark... 2018-01-02 14:33:27 +01:00
gimpcropoptions.h Bug 764024 - Allow to choose fill color when resizing layers and images 2016-10-10 00:21:36 +02:00
gimpcroptool.c Bug 784802 - Crop and rectangle-select tools incorrectly detect ... 2018-02-25 10:23:58 -05:00
gimpcroptool.h Bug 784802 - Crop and rectangle-select tools incorrectly detect ... 2018-02-15 17:06:51 -05:00
gimpcurvestool.c app: add weak pointers for the curves and levels hisrogram view members 2018-01-29 21:01:57 +01:00
gimpcurvestool.h app: rename GimpImageMapTool to GimpFilterTool 2016-05-10 13:52:24 +02:00
gimpdodgeburntool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimpdodgeburntool.h
gimpdrawtool.c app: use matrix to determine if doing perspective transform in preview 2017-11-14 11:24:56 -05:00
gimpdrawtool.h app: use matrix to determine if doing perspective transform in preview 2017-11-14 11:24:56 -05:00
gimpeditselectiontool.c Bug 793373 - Crash when ctrl-alt-clicking, dragging then releasing... 2018-02-12 05:18:26 -05:00
gimpeditselectiontool.h
gimpellipseselecttool.c app: port the rectangle and ellipse select tools to GimpToolRectangle 2017-06-27 18:25:31 +02:00
gimpellipseselecttool.h
gimperasertool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimperasertool.h
gimpfilteroptions.c app: remove GimpFilterOptions' "settings" property 2017-06-08 22:28:50 +02:00
gimpfilteroptions.h app: remove GimpFilterOptions' "settings" property 2017-06-08 22:28:50 +02:00
gimpfiltertool-settings.c app: add an optional "label" to GimpTool which overrides GimpToolInfo's 2017-07-04 22:31:17 +02:00
gimpfiltertool-settings.h app: remove some overengineering from GimpFilterTool 2017-03-25 14:57:15 +01:00
gimpfiltertool-widgets.c app: add a gyroscope controller to prop-gui 2018-04-10 10:18:48 -04:00
gimpfiltertool-widgets.h app: reset GimpFilterTool widget when resetting settings 2018-03-18 14:35:11 -04:00
gimpfiltertool.c app: add a gyroscope controller to prop-gui 2018-04-10 10:18:48 -04:00
gimpfiltertool.h app: allow specifying a callback function for propgui pickers 2017-10-16 12:38:37 -04:00
gimpflipoptions.c app: add "clipping" option to the flip tool 2017-06-11 15:09:46 -04:00
gimpflipoptions.h app: add support for reflecting across guides to the flip tool 2017-06-11 15:09:24 -04:00
gimpfliptool.c Bug 794996 - Misc. typo fixes in comments in app/ 2018-04-08 21:25:56 +02:00
gimpfliptool.h app: add support for reflecting across guides to the flip tool 2017-06-11 15:09:24 -04:00
gimpforegroundselectoptions.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimpforegroundselectoptions.h
gimpforegroundselecttool.c Bug 794926 - Foreground select tool: several critical errors when ... 2018-04-08 13:03:11 +02:00
gimpforegroundselecttool.h app: fix GimpForegroundSelectTool after GimpFreeSelectTool changes 2017-12-07 19:53:20 +01:00
gimpforegroundselecttoolundo.c app: replace all g_assert() by the newly added gimp_assert() 2018-02-11 22:23:10 +01:00
gimpforegroundselecttoolundo.h app: move tool undo typedefs out of tools-types.h 2016-05-11 11:23:14 +02:00
gimpfreeselecttool.c Bug 785781 - Additional Free Selection step (hitting Enter)... 2017-12-01 22:19:42 +01:00
gimpfreeselecttool.h app: use a GimpToolPolygon in GimpFreeSelectTool 2017-06-23 01:59:37 +02:00
gimpfuzzyselecttool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimpfuzzyselecttool.h
gimpgegltool.c Create custom UI for GEGL-based Shadows-Highlights filter... 2018-01-05 05:56:08 +03:00
gimpgegltool.h
gimpgenerictransformtool.c app: add GimpGenericTransformTool 2018-01-27 07:30:29 -05:00
gimpgenerictransformtool.h app: add GimpGenericTransformTool 2018-01-27 07:30:29 -05:00
gimpgradientoptions.c Bug 795230 - Rename Blend tool and provide PDB compatibility 2018-04-14 00:52:20 +02:00
gimpgradientoptions.h Bug 795230 - Rename Blend tool and provide PDB compatibility 2018-04-14 00:52:20 +02:00
gimpgradienttool-editor.c Bug 795230 - Rename Blend tool and provide PDB compatibility 2018-04-14 00:52:20 +02:00
gimpgradienttool-editor.h Bug 795230 - Rename Blend tool and provide PDB compatibility 2018-04-14 00:52:20 +02:00
gimpgradienttool.c app: use "g" for gradient shortcut. 2018-04-14 14:27:36 +02:00
gimpgradienttool.h Bug 795230 - Rename Blend tool and provide PDB compatibility 2018-04-14 00:52:20 +02:00
gimpguidetool.c app: replace all g_assert() by the newly added gimp_assert() 2018-02-11 22:23:10 +01:00
gimpguidetool.h Bug 770911 - Move tool should display relative coordinates in statusbar... 2016-10-01 22:45:51 +02:00
gimphandletransformoptions.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimphandletransformoptions.h
gimphandletransformtool.c app: port relevant transform tools to GimpGenericTransformTool 2018-01-27 07:30:30 -05:00
gimphandletransformtool.h app: port relevant transform tools to GimpGenericTransformTool 2018-01-27 07:30:30 -05:00
gimphealtool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimphealtool.h
gimphistogramoptions.c app: clean up a lot of werid code in GimpColorOptions and GimpFilterOptions 2016-05-13 22:06:14 +02:00
gimphistogramoptions.h app: clean up a lot of werid code in GimpColorOptions and GimpFilterOptions 2016-05-13 22:06:14 +02:00
gimpinkoptions-gui.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpinkoptions-gui.h
gimpinktool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimpinktool.h
gimpiscissorsoptions.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpiscissorsoptions.h
gimpiscissorstool.c Bug 794996 - Misc. typo fixes in comments in app/ 2018-04-08 21:25:56 +02:00
gimpiscissorstool.h app: remove the dynamic programming buffer from the GimpIscissorsTool struct 2016-10-07 01:58:37 +02:00
gimplevelstool.c app: add weak pointers for the curves and levels hisrogram view members 2018-01-29 21:01:57 +01:00
gimplevelstool.h app: rename GimpImageMapTool to GimpFilterTool 2016-05-10 13:52:24 +02:00
gimpmagnifyoptions.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpmagnifyoptions.h
gimpmagnifytool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimpmagnifytool.h
gimpmeasureoptions.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpmeasureoptions.h
gimpmeasuretool.c Bug 792981 - Measure tool is measuring one pixel to the right of initial point 2018-01-28 15:07:47 +01:00
gimpmeasuretool.h app: rename all tools' widget members to simply "widget" 2017-06-27 22:50:50 +02:00
gimpmoveoptions.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpmoveoptions.h
gimpmovetool.c app: add gimp_image_pick_vectors(), remove gimp_draw_tool_on_vectors() 2017-06-22 11:35:57 +02:00
gimpmovetool.h app: remove obsolete prototypes from gimpmovetool.h 2017-07-11 12:42:30 +02:00
gimpmybrushoptions-gui.c app: Add "No erasing effect" parameter to MyPaint brush 2018-01-03 02:23:53 +01:00
gimpmybrushoptions-gui.h
gimpmybrushtool.c app: remove option for paint tools to opt out of a separate thread 2018-04-09 14:27:48 -04:00
gimpmybrushtool.h
gimpnpointdeformationoptions.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpnpointdeformationoptions.h
gimpnpointdeformationtool.c app: add crop_input parameter to gimp_gegl_apply_operation() 2018-03-22 13:46:28 -04:00
gimpnpointdeformationtool.h
gimpoperationtool.c Bug 794996 - Misc. typo fixes in comments in app/ 2018-04-08 21:25:56 +02:00
gimpoperationtool.h app: also make options_box into a GWeakRef. 2017-10-05 00:11:36 +02:00
gimppaintbrushtool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimppaintbrushtool.h
gimppaintoptions-gui.c Bug 795207 - Add color space to blend(gradient) tool options 2018-04-13 22:33:16 +02:00
gimppaintoptions-gui.h
gimppainttool-paint.c Bug 795257 - Segmentation fault crash using the clone tool 2018-04-14 10:14:58 -04:00
gimppainttool-paint.h app: reorganize gimppaintool-paint 2018-04-09 14:27:48 -04:00
gimppainttool.c Bug 795257 - Segmentation fault crash using the clone tool 2018-04-14 10:14:58 -04:00
gimppainttool.h Bug 795257 - Segmentation fault crash using the clone tool 2018-04-14 10:14:58 -04:00
gimppenciltool.c Deprecate stock items for good and change all icon defines to GIMP_ICON_* 2017-03-05 16:01:59 +01:00
gimppenciltool.h
gimpperspectiveclonetool.c app: connect to GimpToolWidget::snap-offsets in GimpDrawTool 2017-06-26 20:37:51 +02:00
gimpperspectiveclonetool.h app: use a GimpToolTransformGrid in GimpPerspectiveClone 2017-06-19 20:43:46 +02:00
gimpperspectivetool.c app: port relevant transform tools to GimpGenericTransformTool 2018-01-27 07:30:30 -05:00
gimpperspectivetool.h app: port relevant transform tools to GimpGenericTransformTool 2018-01-27 07:30:30 -05:00
gimprectangleoptions.c app: set GimpRectangleOptions highlight-opacity scale to 100 2018-02-15 17:06:51 -05:00
gimprectangleoptions.h Bug 770689 - Custom transparency controller for dark... 2018-01-02 14:33:27 +01:00
gimprectangleselectoptions.c Bug 770689 - Custom transparency controller for dark... 2018-01-02 14:33:27 +01:00
gimprectangleselectoptions.h
gimprectangleselecttool.c Bug 784802 - Crop and rectangle-select tools incorrectly detect ... 2018-02-25 10:23:58 -05:00
gimprectangleselecttool.h app: port the rectangle and ellipse select tools to GimpToolRectangle 2017-06-27 18:25:31 +02:00
gimpregionselectoptions.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpregionselectoptions.h
gimpregionselecttool.c Revert "Bug 791512 - make the selection boundary detection the same as 2.8" 2018-04-10 00:26:01 +02:00
gimpregionselecttool.h
gimprotatetool.c app: also manage all contrain and frompivot properties centrally 2017-06-19 23:29:01 +02:00
gimprotatetool.h
gimpsamplepointtool.c Bug 770911 - Move tool should display relative coordinates in statusbar... 2016-10-01 22:45:51 +02:00
gimpsamplepointtool.h Bug 770911 - Move tool should display relative coordinates in statusbar... 2016-10-01 22:45:51 +02:00
gimpscaletool.c Bug 790293 - Scale tool: Ctrl uses top-left corner of selection... 2018-01-11 20:05:53 +01:00
gimpscaletool.h
gimpseamlesscloneoptions.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpseamlesscloneoptions.h
gimpseamlessclonetool.c Bug 794996 - Misc. typo fixes in comments in app/ 2018-04-08 21:25:56 +02:00
gimpseamlessclonetool.h app: rename GimpImageMap to GimpDrawableFilter 2016-05-12 01:49:53 +02:00
gimpselectionoptions.c app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros 2016-02-11 23:46:24 +01:00
gimpselectionoptions.h
gimpselectiontool.c app: rename gimpimage-pick-layer.[ch] to gimpimage-pick-item.[ch] 2017-06-22 08:17:40 +02:00
gimpselectiontool.h
gimpsheartool.c Bug 791949 - Please ind Shift+T to the Unified Transform Tool 2018-01-03 18:02:28 +01:00
gimpsheartool.h
gimpsmudgetool.c Bug 785001 - Enhanced smudge tool: Smudge with painting 2018-01-03 02:29:33 +01:00
gimpsmudgetool.h
gimpsourcetool.c app: in tools, show source location indicator at pixel center 2017-04-03 15:33:23 -04:00
gimpsourcetool.h
gimptextoptions.c app: remove GimpRectangleOptions stuff from GimpTextOptions 2017-06-28 19:34:47 +02:00
gimptextoptions.h
gimptexttool-editor.c app: port GimpTextTool to GimpToolRectangle 2017-06-28 15:40:38 +02:00
gimptexttool-editor.h app: fix various undo- and preedit-related text tool issues 2016-06-05 16:36:56 +02:00
gimptexttool.c Bug 794221 - Recently used colors on text don't get added to the color history 2018-03-23 14:19:01 +01:00
gimptexttool.h app: port GimpTextTool to GimpToolRectangle 2017-06-28 15:40:38 +02:00
gimpthresholdtool.c Bug 792470 - Some filters e.g. "Levels" are not added to "Repeat last" history 2018-01-14 15:42:29 +01:00
gimpthresholdtool.h app, pdb, libgimp: allow to choose the channel when thresholding 2016-11-01 22:45:37 +01:00
gimptilehandleriscissors.c app: change most of Iscissors to use a GimpPickable not a GimpImage 2016-10-07 01:18:16 +02:00
gimptilehandleriscissors.h app: change most of Iscissors to use a GimpPickable not a GimpImage 2016-10-07 01:18:16 +02:00
gimptool-progress.c
gimptool-progress.h
gimptool.c app: replace all g_assert() by the newly added gimp_assert() 2018-02-11 22:23:10 +01:00
gimptool.h app: add an optional "label" to GimpTool which overrides GimpToolInfo's 2017-07-04 22:31:17 +02:00
gimptoolcontrol.c app: let tools control how they recieve modifier keys during a stroke 2017-10-29 16:42:53 +01:00
gimptoolcontrol.h app: let tools control how they recieve modifier keys during a stroke 2017-10-29 16:42:53 +01:00
gimptooloptions-gui.c
gimptooloptions-gui.h
gimptransformoptions.c Bug 795185 - Corrective rotation guides are incorrect in GIMP 2.10. 2018-04-12 12:13:38 +02:00
gimptransformoptions.h
gimptransformtool.c Bug 795185 - "Show image preview" works differently if checked before... 2018-04-12 10:03:13 +02:00
gimptransformtool.h app: add transform_valid member to GimpTransformTool 2018-01-27 07:30:28 -05:00
gimptransformtoolundo.c app: replace all g_assert() by the newly added gimp_assert() 2018-02-11 22:23:10 +01:00
gimptransformtoolundo.h app: move tool undo typedefs out of tools-types.h 2016-05-11 11:23:14 +02:00
gimpunifiedtransformtool.c app: port relevant transform tools to GimpGenericTransformTool 2018-01-27 07:30:30 -05:00
gimpunifiedtransformtool.h app: port relevant transform tools to GimpGenericTransformTool 2018-01-27 07:30:30 -05:00
gimpvectoroptions.c app: add a fill button to the vector tool options, just like stroke 2017-06-22 00:53:59 +02:00
gimpvectoroptions.h app: add a fill button to the vector tool options, just like stroke 2017-06-22 00:53:59 +02:00
gimpvectortool.c app: use a lot of g_clear_object() and g_clear_pointer() 2017-07-15 18:42:44 +02:00
gimpvectortool.h app: rename all tools' widget members to simply "widget" 2017-06-27 22:50:50 +02:00
gimpwarpoptions.c app: add interpolation, abyss policy, and high quality preview options ... 2017-05-19 18:29:16 -04:00
gimpwarpoptions.h app: add interpolation, abyss policy, and high quality preview options ... 2017-05-19 18:29:16 -04:00
gimpwarptool.c Bug 794996 - Misc. typo fixes in comments in app/ 2018-04-08 21:25:56 +02:00
gimpwarptool.h app: add option to stroke the warp tool during cursor motion ... 2017-05-19 04:55:29 -04:00
Makefile.am Bug 795230 - Rename Blend tool and provide PDB compatibility 2018-04-14 00:52:20 +02:00
tool_manager.c Bug 795230 - Rename Blend tool and provide PDB compatibility 2018-04-14 00:52:20 +02:00
tool_manager.h app: rename GimpTool::get_undo_desc() and ::get_redo_desc() 2017-07-04 20:43:28 +02:00
tools-enums.c app: let tools control how they recieve modifier keys during a stroke 2017-10-29 16:42:53 +01:00
tools-enums.h app: let tools control how they recieve modifier keys during a stroke 2017-10-29 16:42:53 +01:00
tools-types.h app: add GimpGenericTransformTool 2018-01-27 07:30:29 -05:00