Fix combo box allocations
https://gitlab.gnome.org/GNOME/gtk/-/issues/5644
This commit is contained in:
parent
11e312c365
commit
db9491bf0d
58
gtk4-4.10.0-combobox-allocation-fix.patch
Normal file
58
gtk4-4.10.0-combobox-allocation-fix.patch
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
From 55faea104694599298a6ca1b9f2e7a1b46bad45a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ivan Molodetskikh <yalterz@gmail.com>
|
||||||
|
Date: Tue, 7 Mar 2023 09:51:32 -0800
|
||||||
|
Subject: [PATCH] combobox: Avoid extra queue_resize()
|
||||||
|
|
||||||
|
width-request already ensures it's above the minimum width, so avoid an
|
||||||
|
extra queue_resize() when setting size request to (-1, -1).
|
||||||
|
|
||||||
|
This is the same way as GtkDropDown works. This also unbreaks
|
||||||
|
GtkComboBox after the recent allocation fix in
|
||||||
|
75a417e33708dab2bdb2f784a8952e085a12bf03.
|
||||||
|
|
||||||
|
Incidentally, this also makes GtkComboBox actually resize its popup as
|
||||||
|
intended (that was broken before).
|
||||||
|
|
||||||
|
I don't think this is ultimately the final fix, sometimes I still get
|
||||||
|
allocation warnings. But the proper fix will probably involve changing
|
||||||
|
some more allocation machinery around popovers. This is good enough for
|
||||||
|
now.
|
||||||
|
---
|
||||||
|
gtk/deprecated/gtkcombobox.c | 14 ++------------
|
||||||
|
1 file changed, 2 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/gtk/deprecated/gtkcombobox.c b/gtk/deprecated/gtkcombobox.c
|
||||||
|
index 618f0780b7..1e76b38f41 100644
|
||||||
|
--- a/gtk/deprecated/gtkcombobox.c
|
||||||
|
+++ b/gtk/deprecated/gtkcombobox.c
|
||||||
|
@@ -366,7 +366,6 @@ gtk_combo_box_size_allocate (GtkWidget *widget,
|
||||||
|
{
|
||||||
|
GtkComboBox *combo_box = GTK_COMBO_BOX (widget);
|
||||||
|
GtkComboBoxPrivate *priv = gtk_combo_box_get_instance_private (combo_box);
|
||||||
|
- int menu_width;
|
||||||
|
|
||||||
|
gtk_widget_size_allocate (priv->box,
|
||||||
|
&(GtkAllocation) {
|
||||||
|
@@ -374,17 +373,8 @@ gtk_combo_box_size_allocate (GtkWidget *widget,
|
||||||
|
width, height
|
||||||
|
}, baseline);
|
||||||
|
|
||||||
|
- gtk_widget_set_size_request (priv->popup_widget, -1, -1);
|
||||||
|
-
|
||||||
|
- if (priv->popup_fixed_width)
|
||||||
|
- gtk_widget_measure (priv->popup_widget, GTK_ORIENTATION_HORIZONTAL, -1,
|
||||||
|
- &menu_width, NULL, NULL, NULL);
|
||||||
|
- else
|
||||||
|
- gtk_widget_measure (priv->popup_widget, GTK_ORIENTATION_HORIZONTAL, -1,
|
||||||
|
- NULL, &menu_width, NULL, NULL);
|
||||||
|
-
|
||||||
|
- gtk_widget_set_size_request (priv->popup_widget,
|
||||||
|
- MAX (width, menu_width), -1);
|
||||||
|
+ gtk_widget_set_size_request (priv->popup_widget, width, -1);
|
||||||
|
+ gtk_widget_queue_resize (priv->popup_widget);
|
||||||
|
|
||||||
|
gtk_popover_present (GTK_POPOVER (priv->popup_widget));
|
||||||
|
}
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
@ -31,6 +31,8 @@ Patch0: 0001-Revert-Meson-Simplify-pkgconfig-file-generator.patch
|
|||||||
|
|
||||||
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5625
|
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5625
|
||||||
Patch1: 0001-filerchooser-Show-Recent-files-in-inverse-order.patch
|
Patch1: 0001-filerchooser-Show-Recent-files-in-inverse-order.patch
|
||||||
|
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5608
|
||||||
|
Patch2: gtk4-4.10.0-combobox-allocation-fix.patch
|
||||||
|
|
||||||
BuildRequires: cups-devel
|
BuildRequires: cups-devel
|
||||||
BuildRequires: desktop-file-utils
|
BuildRequires: desktop-file-utils
|
||||||
|
Loading…
Reference in New Issue
Block a user