1From 438b85d3fe83286a5ecf9c83049e5db045097507 Mon Sep 17 00:00:00 2001 2From: Michael Natterer <mitch@gimp.org> 3Date: Thu, 22 Nov 2012 19:49:20 +0100 4Subject: [PATCH 30/68] gtk: fix size_request() of scrolled window 5 6--- 7 gtk/gtkscrolledwindow.c | 41 ++++++++++++++++------------------------- 8 1 file changed, 16 insertions(+), 25 deletions(-) 9 10diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c 11index 09f19d9..77bb5af 100644 12--- a/gtk/gtkscrolledwindow.c 13+++ b/gtk/gtkscrolledwindow.c 14@@ -1579,14 +1579,12 @@ gtk_scrolled_window_size_request (GtkWidget *widget, 15 GtkRequisition hscrollbar_requisition; 16 GtkRequisition vscrollbar_requisition; 17 GtkRequisition child_requisition; 18- GtkScrolledWindowPrivate *priv; 19 20 g_return_if_fail (GTK_IS_SCROLLED_WINDOW (widget)); 21 g_return_if_fail (requisition != NULL); 22 23 scrolled_window = GTK_SCROLLED_WINDOW (widget); 24 bin = GTK_BIN (scrolled_window); 25- priv = GTK_SCROLLED_WINDOW_GET_PRIVATE (scrolled_window); 26 27 scrollbar_spacing = _gtk_scrolled_window_get_scrollbar_spacing (scrolled_window); 28 29@@ -1606,7 +1604,7 @@ gtk_scrolled_window_size_request (GtkWidget *widget, 30 31 if (scrolled_window->hscrollbar_policy == GTK_POLICY_NEVER) 32 requisition->width += child_requisition.width; 33- else if (! priv->overlay_scrollbars) 34+ else 35 { 36 GtkWidgetAuxInfo *aux_info = _gtk_widget_get_aux_info (bin->child, FALSE); 37 38@@ -1617,13 +1615,11 @@ gtk_scrolled_window_size_request (GtkWidget *widget, 39 } 40 else 41 requisition->width += vscrollbar_requisition.width; 42- } 43- else 44- requisition->width += priv->sb_width + 2 * priv->sb_padding; 45+ } 46 47 if (scrolled_window->vscrollbar_policy == GTK_POLICY_NEVER) 48 requisition->height += child_requisition.height; 49- else if (! priv->overlay_scrollbars) 50+ else 51 { 52 GtkWidgetAuxInfo *aux_info = _gtk_widget_get_aux_info (bin->child, FALSE); 53 54@@ -1634,28 +1630,23 @@ gtk_scrolled_window_size_request (GtkWidget *widget, 55 } 56 else 57 requisition->height += hscrollbar_requisition.height; 58- } 59- else 60- requisition->height += priv->sb_width + 2 * priv->sb_padding; 61+ } 62 } 63 64- if (! priv->overlay_scrollbars) 65+ if (scrolled_window->hscrollbar_policy == GTK_POLICY_AUTOMATIC || 66+ scrolled_window->hscrollbar_policy == GTK_POLICY_ALWAYS) 67 { 68- if (scrolled_window->hscrollbar_policy == GTK_POLICY_AUTOMATIC || 69- scrolled_window->hscrollbar_policy == GTK_POLICY_ALWAYS) 70- { 71- requisition->width = MAX (requisition->width, hscrollbar_requisition.width); 72- if (!extra_height || scrolled_window->hscrollbar_policy == GTK_POLICY_ALWAYS) 73- extra_height = scrollbar_spacing + hscrollbar_requisition.height; 74- } 75+ requisition->width = MAX (requisition->width, hscrollbar_requisition.width); 76+ if (!extra_height || scrolled_window->hscrollbar_policy == GTK_POLICY_ALWAYS) 77+ extra_height = scrollbar_spacing + hscrollbar_requisition.height; 78+ } 79 80- if (scrolled_window->vscrollbar_policy == GTK_POLICY_AUTOMATIC || 81- scrolled_window->vscrollbar_policy == GTK_POLICY_ALWAYS) 82- { 83- requisition->height = MAX (requisition->height, vscrollbar_requisition.height); 84- if (!extra_height || scrolled_window->vscrollbar_policy == GTK_POLICY_ALWAYS) 85- extra_width = scrollbar_spacing + vscrollbar_requisition.width; 86- } 87+ if (scrolled_window->vscrollbar_policy == GTK_POLICY_AUTOMATIC || 88+ scrolled_window->vscrollbar_policy == GTK_POLICY_ALWAYS) 89+ { 90+ requisition->height = MAX (requisition->height, vscrollbar_requisition.height); 91+ if (!extra_height || scrolled_window->vscrollbar_policy == GTK_POLICY_ALWAYS) 92+ extra_width = scrollbar_spacing + vscrollbar_requisition.width; 93 } 94 95 requisition->width += GTK_CONTAINER (widget)->border_width * 2 + MAX (0, extra_width); 96-- 971.7.10.2 (Apple Git-33) 98