Gimp/libgimpwidgets
Jehan db81ac6933 Issue #11613: crashing when freeing window handle (again).
This is a followup of commit 0ff960c45b which was the right fix, except
that we must make sure that gimp_widget_free_native_handle() is called
**before** chaining up with the widget's parent dispose().

Failing to do so, the first parent's dispose() was destroying the
associated GdkWindow, which made it impossible to call
gdk_wayland_window_unexport_handle() on it. And therefore we were still
getting handle callbacks possibly run after the window was destroyed, if
we were very fast enough to destroy a window immediately when it is
being shown.

I was still experiencing a crash when closing the Export file dialog
very fast with Esc while it was reappearing after canceling a plug-in's
export dialog.

This followup commit reorders the one case where we still had the crash
because of this order issue, and adds some docs comment to tell
developers how to use the freeing function.

(cherry picked from commit a5fe4f1ca5)
2026-01-21 23:02:43 +01:00
..
gimpbrowser.c libgimpwidgets: make GimpBrowser final. 2024-10-16 22:30:49 +02:00
gimpbrowser.h libgimpwidgets: make GimpBrowser final. 2024-10-16 22:30:49 +02:00
gimpbusybox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpbusybox.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpbutton.c libgimpwidgets: Make GimpButton a derivable type 2024-07-30 19:04:53 +00:00
gimpbutton.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpcairo-utils.c libgimpwidgets: delete unused variable. 2024-10-28 22:08:45 +01:00
gimpcairo-utils.h app, libgimp*: more GeglColor's space invasion. 2024-02-11 23:28:02 +01:00
gimpcellrenderercolor.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcellrenderercolor.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcellrenderertoggle.c libgimp*: revert using g_set_str() outside app/ 2025-09-17 16:40:21 +02:00
gimpcellrenderertoggle.h libgimpwidgets: GimpCellRendererToggle now final. 2024-10-16 22:30:49 +02:00
gimpchainbutton.c libgimpwidgets: GimpChainButton now a final type too. 2024-10-16 22:30:49 +02:00
gimpchainbutton.h libgimpwidgets: GimpChainButton now a final type too. 2024-10-16 22:30:49 +02:00
gimpcolorarea.c libgimpwidgets: update color area correctly when updating color. 2025-11-21 16:47:10 -03:00
gimpcolorarea.h libgimpwidgets: GimpColorArea made final. 2024-10-16 22:30:49 +02:00
gimpcolorbutton.c libgimp, libgimpmodule, libgimpwidgets: Port more widgets to derivable type 2024-08-03 02:48:07 +00:00
gimpcolorbutton.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpcolordisplay.c libgimpwidgets: GimpColorDisplay is an abstract class. 2024-10-16 22:30:49 +02:00
gimpcolordisplay.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpcolordisplaystack.c libgimpwidgets: GimpColorDisplayStack made final. 2024-10-16 22:30:49 +02:00
gimpcolordisplaystack.h libgimpwidgets: GimpColorDisplayStack made final. 2024-10-16 22:30:49 +02:00
gimpcolorhexentry.c libgimpwidgets: GimpColorHexEntry made final. 2024-10-16 22:30:49 +02:00
gimpcolorhexentry.h libgimpwidgets: GimpColorHexEntry made final. 2024-10-16 22:30:49 +02:00
gimpcolornotebook.c libgimpwidgets: GimpColorNotebook made final. 2024-10-16 22:30:49 +02:00
gimpcolornotebook.h libgimpwidgets: GimpColorNotebook made final. 2024-10-16 22:30:49 +02:00
gimpcolorprofilechooserdialog.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilechooserdialog.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilecombobox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilecombobox.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilestore-private.h
gimpcolorprofilestore.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilestore.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofileview.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofileview.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorscale.c libgimpwidgets: Convert CIE LCH(ab) babl format to float 2024-08-08 19:25:07 +00:00
gimpcolorscale.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorscaleentry.c
gimpcolorscaleentry.h
gimpcolorscales.c libgimpwidgets: No decimal for u8 RGB color selector 2025-09-17 16:40:24 +02:00
gimpcolorscales.h libgimpwidgets: Convert more widgets to FINAL/DERIVABLE TYPE 2024-10-12 20:17:29 +00:00
gimpcolorselect.c libgimpwidgets: Ellipsize GimpColorSelect color profile labels 2024-11-26 21:56:11 +00:00
gimpcolorselect.h libgimpwidgets: Convert more widgets to FINAL/DERIVABLE TYPE 2024-10-12 20:17:29 +00:00
gimpcolorselection.c libgimpwidgets: update color area correctly when updating color. 2025-11-21 16:47:10 -03:00
gimpcolorselection.h libgimpwidgets: GimpColorSelection made final. 2024-10-16 22:30:49 +02:00
gimpcolorselector.c libgimpwidgets: GimpColorSelector and GimpController are abstract. 2024-10-16 22:30:49 +02:00
gimpcolorselector.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpcontroller.c libgimp*: revert using g_set_str() outside app/ 2025-09-17 16:40:21 +02:00
gimpcontroller.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpdialog.c libgimp*: revert using g_set_str() outside app/ 2025-09-17 16:40:21 +02:00
gimpdialog.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpeevl.c
gimpeevl.h
gimpenumcombobox.c
gimpenumcombobox.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpenumlabel.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpenumlabel.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpenumstore.c libgimpwidgets: GimpEnumStore made final. 2024-10-16 22:30:49 +02:00
gimpenumstore.h libgimpwidgets: GimpEnumStore made final. 2024-10-16 22:30:49 +02:00
gimpenumwidgets.c tools, libgimpwidgets: Connect SelectionOptions to icon size 2024-08-15 19:07:14 +00:00
gimpenumwidgets.h tools, libgimpwidgets: Connect SelectionOptions to icon size 2024-08-15 19:07:14 +00:00
gimpfilechooser.c libgimp: GimpFileChooser: fix #12847 inf loop in signal handler 2025-02-07 07:23:42 -05:00
gimpfilechooser.h libgimpwidgets: new GimpFileChooser widget. 2025-01-26 18:13:55 +01:00
gimpfileentry.c libgimpwidgets: GimpFileEntry is not public anymore. 2024-10-31 19:54:43 +01:00
gimpfileentry.h libgimpwidgets: GimpFileEntry is not public anymore. 2024-10-31 19:54:43 +01:00
gimpframe.c libgimpwidget: Fix GimpFrame line-spacing property 2023-04-22 03:01:16 +00:00
gimpframe.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimphelpui.c app, libgimpwidgets, plug-ins: add tooltip arg to gimp_help_connect(). 2024-08-24 23:29:39 +02:00
gimphelpui.h app, libgimpwidgets, plug-ins: add tooltip arg to gimp_help_connect(). 2024-08-24 23:29:39 +02:00
gimphintbox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimphintbox.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpicons.c libgimpwidgets: gtk-fallback-icon-theme is deprecated... 2025-08-09 18:11:12 +02:00
gimpicons.h actions: Add new Navigation dockable icons 2024-12-26 17:00:17 +00:00
gimpintcombobox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpintcombobox.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpintradioframe.c libgimpwidgets: GimpIntRadioFrame is now a FINAL type 2024-10-18 04:17:23 +00:00
gimpintradioframe.h libgimpwidgets: GimpIntRadioFrame is now a FINAL type 2024-10-18 04:17:23 +00:00
gimpintstore.c libgimp, libgimpmodule, libgimpwidgets: Port more widgets to derivable type 2024-08-03 02:48:07 +00:00
gimpintstore.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimplabelcolor.c libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimplabelcolor.h libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimplabeled.c
gimplabeled.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimplabelentry.c libgimpwidgets: consider NULL value of GimpLabelEntry as empty string. 2026-01-21 22:06:17 +01:00
gimplabelentry.h libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimplabelintwidget.c libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimplabelintwidget.h libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimplabelspin.c Issue #11339: color selection sliders don't always update for slow increments. 2024-10-10 11:50:56 +02:00
gimplabelspin.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimplabelstringwidget.c libgimp*: revert using g_set_str() outside app/ 2025-09-17 16:40:21 +02:00
gimplabelstringwidget.h libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimpmemsizeentry.c libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimpmemsizeentry.h libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimpnumberpairentry.c libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimpnumberpairentry.h libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimpoffsetarea.c libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimpoffsetarea.h libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimppageselector.c libgimpwidgets, plug-in: Reduce height of Load PDF dialog 2025-01-25 17:27:55 +00:00
gimppageselector.h libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimppatheditor.c libgimpwidgets: GimpFileEntry is not public anymore. 2024-10-31 19:54:43 +01:00
gimppatheditor.h libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimppickbutton-kwin.c libgimpwidgets: Make GimpPickButton a derivable type 2024-08-03 18:24:46 +00:00
gimppickbutton-kwin.h
gimppickbutton-private.h libgimpwidgets: Make GimpPickButton a derivable type 2024-08-03 18:24:46 +00:00
gimppickbutton-quartz.c libgimpwidgets: fix undeclared identifier. 2024-04-12 12:24:53 +02:00
gimppickbutton-quartz.h
gimppickbutton-win32.c Don't convert to float before storing... 2024-04-09 00:48:35 +00:00
gimppickbutton-win32.h
gimppickbutton-xdg.c libgimpwidgets: Make GimpPickButton a derivable type 2024-08-03 18:24:46 +00:00
gimppickbutton-xdg.h
gimppickbutton.c libgimpwidgets: Make GimpPickButton a derivable type 2024-08-03 18:24:46 +00:00
gimppickbutton.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimppreview.c libgimp, libgimpcolor, libgimpconfig: Convert to derivable types 2024-08-02 14:02:30 +00:00
gimppreview.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimppreviewarea.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimppreviewarea.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimppropwidgets.c libgimpwidgets: new gimp_prop_toggle_new() property widget function. 2025-08-09 18:11:12 +02:00
gimppropwidgets.h libgimpwidgets: new gimp_prop_toggle_new() property widget function. 2025-08-09 18:11:12 +02:00
gimpquerybox.c libgimpwidgets: Add default response for GimpQueryBox dialogues 2025-03-22 02:10:46 +00:00
gimpquerybox.h Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpruler.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpruler.h Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpscaleentry.c app, libgimp, libgimpwidgets, plug-ins, etc: rename behaviour to behavior 2023-07-21 15:35:23 -04:00
gimpscaleentry.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpscrolledpreview.c libgimp, libgimpcolor, libgimpconfig: Convert to derivable types 2024-08-02 14:02:30 +00:00
gimpscrolledpreview.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpsizeentry.c libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimpsizeentry.h libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimpspinbutton.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpspinbutton.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpspinscale.c libgimpwidgets: Cast ints to doubles before division 2025-11-05 15:48:39 -03:00
gimpspinscale.h libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpstringcombobox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpstringcombobox.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpunitcombobox.c libgimpwidgets: GimpUnitComboBox and GimpZoomModel... 2024-10-22 04:23:46 +00:00
gimpunitcombobox.h libgimpwidgets: GimpUnitComboBox and GimpZoomModel... 2024-10-22 04:23:46 +00:00
gimpunitstore.c libgimp*: revert using g_set_str() outside app/ 2025-09-17 16:40:21 +02:00
gimpunitstore.h libgimp*: keep 10 reserved spots for future virtual functions in every derivable class. 2024-11-01 17:22:07 +01:00
gimpwidgets-error.c
gimpwidgets-error.h
gimpwidgets-private.c app, libgimp*, pdb, plug-ins: GimpContext is now using only GeglColor. 2024-02-11 23:28:02 +01:00
gimpwidgets-private.h libgimpwidgets: don't unnecessarily redraw color previews. 2024-02-11 23:28:04 +01:00
gimpwidgets.c libgimp, libgimpwidgets: fix (closure) annotations. 2025-09-17 16:40:20 +02:00
gimpwidgets.def libgimpwidgets: new gimp_prop_toggle_new() property widget function. 2025-08-09 18:11:12 +02:00
gimpwidgets.h libgimpwidgets: new GimpFileChooser widget. 2025-01-26 18:13:55 +01:00
gimpwidgetsenums.c
gimpwidgetsenums.h
gimpwidgetsmarshal.list
gimpwidgetstypes.h libgimpwidgets: new GimpFileChooser widget. 2025-01-26 18:13:55 +01:00
gimpwidgetsutils.c Issue #11613: crashing when freeing window handle (again). 2026-01-21 23:02:43 +01:00
gimpwidgetsutils.h libgimpwidgets: clean documentation and implementation. 2026-01-21 23:02:43 +01:00
gimpzoommodel.c libgimpwidgets: GimpUnitComboBox and GimpZoomModel... 2024-10-22 04:23:46 +00:00
gimpzoommodel.h libgimpwidgets: GimpUnitComboBox and GimpZoomModel... 2024-10-22 04:23:46 +00:00
meson.build Declare gexiv2 dependency on many targets (due to gimpmetadata.h) 2025-10-03 18:42:25 -03:00
test-eevl.c
test-preview-area.c