Gimp/libgimpwidgets
balooii balooii b0ee5ddfce Issue #12491: Fix GimpUnitComboBox immediately closing on certain platforms
I noticed that the issue of the combo box popup getting immeidately
closed on Linux X11 (and probably macOS as well) only happens when using
GimpUnitComboBox as used in gimppropwidgets.c and gimpsizeentry.c while
there is no issue when used in gimpstatusbar.c

The only noticable difference I saw was that in status bar was that
the wrap width of combo box was set to 1 via
gtk_combo_box_set_wrap_width. Which was added as a hack for another
issue.

I did the same for the other two uses of GimpUnitComboBox and the issue
disappeared so I moved this hack to GimpUnitComboBox itself as it seems
to be generally useful.

The change doesn't make much sense to me and is a workaround for
something that should probably be changed in GTK but well.

As explored in !2654 I think we shouldn't use GtkComboBox but reimplement
using a Popover. This would get rid of these workarounds as we wouldn't rely
on internal behaviour of GtkComboBox.

Couldn't test macOS or Windows but Linux X11 and Wayland work just fine.
Tested by: GDK_BACKEND=x11 gimp and GDK_BACKEND=wayland gimp

Fixes #12491

Superseedes !2654
2026-03-10 00:11:37 +01:00
..
gimpbrowser.c libgimpwidgets: make GimpBrowser emit "stop-search" signal 2025-12-07 19:46:03 +01:00
gimpbrowser.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpbusybox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpbusybox.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpbutton.c libgimpwidgets: Make GimpButton a derivable type 2024-07-30 19:04:53 +00:00
gimpbutton.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcairo-utils.c libgimpwidgets: delete unused variable. 2024-10-28 22:08:45 +01:00
gimpcairo-utils.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcellrenderercolor.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcellrenderercolor.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcellrenderertoggle.c libgimp*: revert using g_set_str() outside app/ 2025-07-10 23:27:54 +02:00
gimpcellrenderertoggle.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpchainbutton.c libgimpwidgets: GimpChainButton now a final type too. 2024-10-16 22:30:49 +02:00
gimpchainbutton.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorarea.c libgimpwidgets: update color area correctly when updating color. 2025-11-21 19:33:09 +01:00
gimpcolorarea.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorbutton.c libgimp, libgimpmodule, libgimpwidgets: Port more widgets to derivable type 2024-08-03 02:48:07 +00:00
gimpcolorbutton.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolordisplay.c libgimpwidgets: GimpColorDisplay is an abstract class. 2024-10-16 22:30:49 +02:00
gimpcolordisplay.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolordisplaystack.c libgimpwidgets: GimpColorDisplayStack made final. 2024-10-16 22:30:49 +02:00
gimpcolordisplaystack.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorhexentry.c libgimpwidgets: Update hex color as you type 2025-09-25 11:48:17 +00:00
gimpcolorhexentry.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolornotebook.c libgimpwidgets: GimpColorNotebook made final. 2024-10-16 22:30:49 +02:00
gimpcolornotebook.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorprofilechooserdialog.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilechooserdialog.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorprofilecombobox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilecombobox.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorprofilestore-private.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorprofilestore.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofilestore.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorprofileview.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpcolorprofileview.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorscale.c libgimpwidgets: Convert CIE LCH(ab) babl format to float 2024-08-08 19:25:07 +00:00
gimpcolorscale.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorscaleentry.c
gimpcolorscaleentry.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorscales.c libgimpwidgets: No decimal for u8 RGB color selector 2025-08-07 04:05:48 +00:00
gimpcolorscales.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorselect.c libgimpwidgets: Ellipsize GimpColorSelect color profile labels 2024-11-26 21:56:11 +00:00
gimpcolorselect.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorselection.c libgimpwidgets: update color area correctly when updating color. 2025-11-21 19:33:09 +01:00
gimpcolorselection.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcolorselector.c libgimpwidgets: GimpColorSelector and GimpController are abstract. 2024-10-16 22:30:49 +02:00
gimpcolorselector.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpcontroller.c libgimp*: revert using g_set_str() outside app/ 2025-07-10 23:27:54 +02:00
gimpcontroller.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpdialog.c libgimp*: revert using g_set_str() outside app/ 2025-07-10 23:27:54 +02:00
gimpdialog.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpeevl.c
gimpeevl.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpenumcombobox.c
gimpenumcombobox.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpenumlabel.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpenumlabel.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpenumstore.c libgimpwidgets: GimpEnumStore made final. 2024-10-16 22:30:49 +02:00
gimpenumstore.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpenumwidgets.c libgimpwidgets, theme: Group radio buttons together 2025-11-15 02:50:17 +00:00
gimpenumwidgets.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpfilechooser.c libgimp: GimpFileChooser: fix #12847 inf loop in signal handler 2025-02-07 07:23:42 -05:00
gimpfilechooser.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpfileentry.c libgimpwidgets: GimpFileEntry is not public anymore. 2024-10-31 19:54:43 +01:00
gimpfileentry.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpframe.c libgimpwidget: Fix GimpFrame line-spacing property 2023-04-22 03:01:16 +00:00
gimpframe.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimphelpui.c app, libgimpwidgets, plug-ins: add tooltip arg to gimp_help_connect(). 2024-08-24 23:29:39 +02:00
gimphelpui.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimphintbox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimphintbox.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpicons.c libgimpwidgets: add an API warning for deleting GIMP_ICON_TEXTURE later. 2026-01-21 21:45:29 +01:00
gimpicons.h app, libgimpwidgets: add 2 new icon macros. 2025-10-10 23:34:37 +02:00
gimpintcombobox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpintcombobox.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpintradioframe.c libgimpwidgets: GimpIntRadioFrame is now a FINAL type 2024-10-18 04:17:23 +00:00
gimpintradioframe.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpintstore.c libgimp, libgimpmodule, libgimpwidgets: Port more widgets to derivable type 2024-08-03 02:48:07 +00:00
gimpintstore.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimplabelcolor.c libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimplabelcolor.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimplabeled.c
gimplabeled.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimplabelentry.c libgimpwidgets: consider NULL value of GimpLabelEntry as empty string. 2025-10-14 22:28:37 +02:00
gimplabelentry.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimplabelintwidget.c libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimplabelintwidget.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimplabelspin.c Issue #14972: Fix GimpLabelSpin CRITICAL warnings for small double ranges 2026-02-28 13:19:04 +00:00
gimplabelspin.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimplabelstringwidget.c libgimp*: revert using g_set_str() outside app/ 2025-07-10 23:27:54 +02:00
gimplabelstringwidget.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpmemsizeentry.c libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimpmemsizeentry.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpnumberpairentry.c libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimpnumberpairentry.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpoffsetarea.c libgimpwidgets: More widgets are now FINAL types 2024-10-19 02:27:07 +00:00
gimpoffsetarea.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimppageselector.c libgimpwidgets: fix overlapping ngettext usage 2025-10-08 22:14:24 +02:00
gimppageselector.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimppatheditor.c libgimpwidgets: GimpFileEntry is not public anymore. 2024-10-31 19:54:43 +01:00
gimppatheditor.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimppickbutton-kwin.c libgimpwidgets: Make GimpPickButton a derivable type 2024-08-03 18:24:46 +00:00
gimppickbutton-kwin.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimppickbutton-private.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimppickbutton-quartz.c libgimpwidgets: fix undeclared identifier. 2024-04-12 12:24:53 +02:00
gimppickbutton-quartz.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimppickbutton-win32.c Don't convert to float before storing... 2024-04-09 00:48:35 +00:00
gimppickbutton-win32.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimppickbutton-xdg.c libgimpwidgets: Make GimpPickButton a derivable type 2024-08-03 18:24:46 +00:00
gimppickbutton-xdg.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimppickbutton.c libgimpwidgets: Make GimpPickButton a derivable type 2024-08-03 18:24:46 +00:00
gimppickbutton.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimppreview.c libgimp, libgimpcolor, libgimpconfig: Convert to derivable types 2024-08-02 14:02:30 +00:00
gimppreview.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimppreviewarea.c libgimpwidgets: gegl_init() unneeded here. 2025-12-05 23:06:26 +01:00
gimppreviewarea.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimppropwidgets.c libgimpwidgets: Reorder GimpPropToggle docs 2026-02-13 05:29:53 +00:00
gimppropwidgets.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpquerybox.c libgimpwidgets: Add default response for GimpQueryBox dialogues 2025-03-22 02:10:46 +00:00
gimpquerybox.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpruler.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
gimpruler.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpscaleentry.c app, libgimp, libgimpwidgets, plug-ins, etc: rename behaviour to behavior 2023-07-21 15:35:23 -04:00
gimpscaleentry.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpscrolledpreview.c libgimp, libgimpcolor, libgimpconfig: Convert to derivable types 2024-08-02 14:02:30 +00:00
gimpscrolledpreview.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpsizeentry.c libgimpwidgets: enable expression parser for GimpSizeEntry 2025-08-05 23:43:30 +00:00
gimpsizeentry.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpspinbutton.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpspinbutton.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpspinscale.c Issue #11998: do not steal focus from spin widget when double clicking 2026-02-21 13:48:16 +00:00
gimpspinscale.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpstringcombobox.c libgimpwidgets: Convert widgets to final/derived type 2024-07-29 01:51:38 +00:00
gimpstringcombobox.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpunitcombobox.c Issue #12491: Fix GimpUnitComboBox immediately closing on certain platforms 2026-03-10 00:11:37 +01:00
gimpunitcombobox.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpunitstore.c libgimp*: revert using g_set_str() outside app/ 2025-07-10 23:27:54 +02:00
gimpunitstore.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpwidgets-error.c
gimpwidgets-error.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
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 Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpwidgets.c libgimp, libgimpwidgets: fix (closure) annotations. 2025-07-07 17:59:32 +02:00
gimpwidgets.def libgimpwidgets: new gimp_prop_toggle_new() property widget function. 2025-05-22 21:14:20 +00:00
gimpwidgets.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpwidgetsenums.c
gimpwidgetsenums.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpwidgetsmarshal.list
gimpwidgetstypes.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
gimpwidgetsutils.c libgimpwidgets: have gimp_widget_get_monitor() work on Wayland too. 2026-02-09 14:09:58 +01:00
gimpwidgetsutils.h libgimpwidgets: clean documentation and implementation. 2025-10-24 02:24:53 +02:00
gimpzoommodel.c libgimpwidgets: GimpUnitComboBox and GimpZoomModel... 2024-10-22 04:23:46 +00:00
gimpzoommodel.h Revert "libgimpwidgets: #pragma once, and formatting and ordering" 2025-08-14 00:54:52 +02:00
meson.build libgimpwidgets: Mark gimpcolorscales and gimpcolorselect as introspectable 2026-01-28 14:48:48 +00:00
test-eevl.c
test-preview-area.c