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