[gtk] sizerequest: Fix request mode for layout managers
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk] sizerequest: Fix request mode for layout managers
- Date: Mon, 27 May 2019 16:13:36 +0000 (UTC)
commit e22073dc975c7b2c5f97d20da6b1fff1a2e0f114
Author: Timm Bäder <mail baedert org>
Date: Sat May 25 09:03:37 2019 +0200
sizerequest: Fix request mode for layout managers
We can't just call GtkWidgetClass::get_request_mode() anymore. If the
widget has a layout manager, we need to ask that one.
gtk/gtksizerequest.c | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
---
diff --git a/gtk/gtksizerequest.c b/gtk/gtksizerequest.c
index 5330a59a1f..6d84487495 100644
--- a/gtk/gtksizerequest.c
+++ b/gtk/gtksizerequest.c
@@ -71,6 +71,17 @@ pop_recursion_check (GtkWidget *widget,
#define pop_recursion_check(widget, orientation)
#endif /* G_ENABLE_CONSISTENCY_CHECKS */
+static GtkSizeRequestMode
+fetch_request_mode (GtkWidget *widget)
+{
+ GtkLayoutManager *layout_manager = gtk_widget_get_layout_manager (widget);
+
+ if (layout_manager != NULL)
+ return gtk_layout_manager_get_request_mode (layout_manager);
+ else
+ return GTK_WIDGET_GET_CLASS (widget)->get_request_mode (widget);
+}
+
static gint
get_number (GtkCssStyle *style,
guint property)
@@ -146,7 +157,7 @@ gtk_widget_query_size_for_orientation (GtkWidget *widget,
cache = _gtk_widget_peek_request_cache (widget);
if (G_UNLIKELY (!cache->request_mode_valid))
{
- cache->request_mode = GTK_WIDGET_GET_CLASS (widget)->get_request_mode (widget);
+ cache->request_mode = fetch_request_mode (widget);
cache->request_mode_valid = TRUE;
}
@@ -562,13 +573,7 @@ gtk_widget_get_request_mode (GtkWidget *widget)
if (G_UNLIKELY (!cache->request_mode_valid))
{
- GtkLayoutManager *layout_manager = gtk_widget_get_layout_manager (widget);
-
- if (layout_manager != NULL)
- cache->request_mode = gtk_layout_manager_get_request_mode (layout_manager);
- else
- cache->request_mode = GTK_WIDGET_GET_CLASS (widget)->get_request_mode (widget);
-
+ cache->request_mode = fetch_request_mode (widget);
cache->request_mode_valid = TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]