1 From 438b85d3fe83286a5ecf9c83049e5db045097507 Mon Sep 17 00:00:00 2001
2 From: Michael Natterer <mitch@gimp.org>
3 Date: Thu, 22 Nov 2012 19:49:20 +0100
4 Subject: [PATCH 30/68] gtk: fix size_request() of scrolled window
7 gtk/gtkscrolledwindow.c | 41 ++++++++++++++++-------------------------
8 1 file changed, 16 insertions(+), 25 deletions(-)
10 diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
11 index 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;
20 g_return_if_fail (GTK_IS_SCROLLED_WINDOW (widget));
21 g_return_if_fail (requisition != NULL);
23 scrolled_window = GTK_SCROLLED_WINDOW (widget);
24 bin = GTK_BIN (scrolled_window);
25 - priv = GTK_SCROLLED_WINDOW_GET_PRIVATE (scrolled_window);
27 scrollbar_spacing = _gtk_scrolled_window_get_scrollbar_spacing (scrolled_window);
29 @@ -1606,7 +1604,7 @@ gtk_scrolled_window_size_request (GtkWidget *widget,
31 if (scrolled_window->hscrollbar_policy == GTK_POLICY_NEVER)
32 requisition->width += child_requisition.width;
33 - else if (! priv->overlay_scrollbars)
36 GtkWidgetAuxInfo *aux_info = _gtk_widget_get_aux_info (bin->child, FALSE);
38 @@ -1617,13 +1615,11 @@ gtk_scrolled_window_size_request (GtkWidget *widget,
41 requisition->width += vscrollbar_requisition.width;
44 - requisition->width += priv->sb_width + 2 * priv->sb_padding;
47 if (scrolled_window->vscrollbar_policy == GTK_POLICY_NEVER)
48 requisition->height += child_requisition.height;
49 - else if (! priv->overlay_scrollbars)
52 GtkWidgetAuxInfo *aux_info = _gtk_widget_get_aux_info (bin->child, FALSE);
54 @@ -1634,28 +1630,23 @@ gtk_scrolled_window_size_request (GtkWidget *widget,
57 requisition->height += hscrollbar_requisition.height;
60 - requisition->height += priv->sb_width + 2 * priv->sb_padding;
64 - if (! priv->overlay_scrollbars)
65 + if (scrolled_window->hscrollbar_policy == GTK_POLICY_AUTOMATIC ||
66 + scrolled_window->hscrollbar_policy == GTK_POLICY_ALWAYS)
68 - if (scrolled_window->hscrollbar_policy == GTK_POLICY_AUTOMATIC ||
69 - scrolled_window->hscrollbar_policy == GTK_POLICY_ALWAYS)
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;
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;
80 - if (scrolled_window->vscrollbar_policy == GTK_POLICY_AUTOMATIC ||
81 - scrolled_window->vscrollbar_policy == GTK_POLICY_ALWAYS)
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;
87 + if (scrolled_window->vscrollbar_policy == GTK_POLICY_AUTOMATIC ||
88 + scrolled_window->vscrollbar_policy == GTK_POLICY_ALWAYS)
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;
95 requisition->width += GTK_CONTAINER (widget)->border_width * 2 + MAX (0, extra_width);
97 1.7.10.2 (Apple Git-33)