gimp/app
Jehan c06083158a Issue #8102: crash when using the clone tool.
So it turns out that the "notify::src-drawables" property signal in
particular can happen during gimp_paint_tool_paint_interpolate() called
from gimp_paint_tool_paint_thread(). Though the function
gimp_clone_options_gui_update_src_label() was run in the main thread in
simple cases, being called this way through a paint thread happens when
very quickly changing the source while painting, which is what Aryeom
does (when I see her using the clone tool, she would sometimes change
the source very quickly several times in barely a few seconds).

Yet GTK and GDK calls must not happen in non-main threads. It used to be
acceptable when protected with gdk_threads_enter|leave() calls but doing
this is deprecated. The now sanctioned method is to call the GTK code in
an idle function since these are guaranteed to run in the main thread.

This was most likely explaining why crashes could quite randomly happen,
though I'm not sure why I never had those (even though I could reproduce
the GTK calls happening in non-main threads, but without crashing GIMP)
and why Aryeom gets these much more often suddenly. Maybe some recent
dependency change which would trigger these more easily or other
context-dependant changes (as most non thread-safe code, bugs and crash
often happen in race conditions, so are harder to reproduce reliably)?
2022-04-21 19:13:01 +02:00
..
actions Fixed text along path error message 2022-04-15 17:25:20 +02:00
config app: Add drag-to-zoom speed preference 2022-04-05 12:31:11 +00:00
core app, plug-ins: redirect plug-in-script-fu-eval to text console in… 2022-04-17 14:25:44 +02:00
dialogs app: Add drag-to-zoom speed preference 2022-04-05 12:31:11 +00:00
display app: Implement exclusiveness of zoom and rotate gestures 2022-04-06 18:50:25 +00:00
file app: missing space in the string. 2022-03-24 21:49:27 +01:00
file-data app: fix resource leak warnings caught by static analysis. 2021-11-08 22:37:13 -05:00
gegl meson: Always enable CPU extensions 2021-06-15 21:15:32 +00:00
gui app: use gimp_is_restored() rather than object variables. 2022-03-12 18:59:36 +01:00
menus app: Add basic infratructure for a vector tool popup menu. 2020-05-25 22:13:45 +02:00
operations Issue #5267: Cage transform tool causes artifacts. 2021-08-05 16:58:55 +02:00
paint app: fix brush outline when dynamics is disabled. 2022-03-12 16:43:53 +01:00
pdb app, libgimp, pdb, plug-ins: batch CLI options now interpreter aware. 2022-04-16 23:28:05 +02:00
plug-in app, libgimp, pdb, plug-ins: batch CLI options now interpreter aware. 2022-04-16 23:28:05 +02:00
propgui app, libgimpwidgets: move gimp_prop_spin_scale_new() and… 2022-02-19 00:14:44 +01:00
tests tools: Use env in shebangs 2022-03-18 16:05:58 +00:00
text Issue #2509: Adding support for 'locl' in Text Tool 2022-03-09 17:53:19 +00:00
tools Issue #8102: crash when using the clone tool. 2022-04-21 19:13:01 +02:00
vectors app: fix leaked queue created at init() (as reported by Massimo). 2021-08-16 12:16:52 +02:00
widgets Fix -Wdiscarded-qualifiers in gimp_tool_button_update. 2022-04-01 18:17:12 +00:00
xcf app: fix #3928 GIMP cannot open .xcf 2022-04-05 13:11:22 +00:00
.gitignore
Makefile.am Fix reference from gimp_param_spec_duplicate to gimp_config_param_spec_duplicate 2020-01-17 11:17:03 +01:00
about.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
app.c app: exit GIMP more cleanly when quitting immediately after batch calls. 2022-04-16 15:02:51 +02:00
app.h app: when called with --quit, GIMP exit code will report batch failure. 2022-04-16 02:30:46 +02:00
errors.c app: NULL log domain is not a bug. 2020-09-22 17:59:41 +02:00
errors.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimp-debug.c Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimp-debug.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimp-intl.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimp-log.c app: add gimp_log_{set,remove}_handler() 2020-08-02 11:01:59 +03:00
gimp-log.h app: add gimp_log_{set,remove}_handler() 2020-08-02 11:01:59 +03:00
gimp-priorities.h app: fix image-window UI-manager update while a projection is being rendered 2019-03-30 19:31:23 -04:00
gimp-update.c app: rename "last-run-version" property by simpler "config-version". 2022-02-22 12:27:58 +01:00
gimp-update.h app: now store the last run version in the core config. 2022-02-22 12:23:46 +01:00
gimp-version.c app: add contents of /.flatpak-info in the verbose info. 2020-07-16 12:12:37 +02:00
gimp-version.h app: store the revision number in a data file. 2020-02-13 23:59:46 +01:00
gimpcore.def Remove GimpStringArray in favor of GStrv 2022-02-12 00:07:53 +00:00
git-version.h.in app: revert `#pragma once` to macro guards in meson build. 2019-09-19 13:31:22 +02:00
language.c Issue #4871: Plug-ins not translated. 2020-04-01 18:02:42 +02:00
language.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
main.c app: when called with --quit, GIMP exit code will report batch failure. 2022-04-16 02:30:46 +02:00
meson.build Issue #7327: Cannot build GIMP3 on MSYS2 using Meson. 2021-10-12 17:06:18 +02:00
sanity.c configure, meson, app: depend on GEGL 0.4.36 2022-02-21 23:42:06 +01:00
sanity.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
signals.c app: fixes string format argument types on Windows 32-bit. 2020-04-21 14:11:49 +02:00
signals.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
tests.c app, libgimp, libgimpwidgets: fix "Application icon missing" in tests. 2021-12-23 13:39:43 +01:00
tests.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
unique.c Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
unique.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00