summaryrefslogtreecommitdiff
path: root/packages/gtk+/gtk+-2.8.16/gtktreeview-316689.patch
blob: 4e77ddf9f9732503b9777868c30b0a7a87774336 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
diff -u -p -r1.498 gtktreeview.c
--- gtk+-2.8.9/gtk/gtktreeview.c	22 Oct 2005 21:08:23 -0000	1.498
+++ gtk+-2.8.9/gtk/gtktreeview.c	24 Oct 2005 22:30:27 -0000
@@ -2098,6 +2098,9 @@ gtk_tree_view_size_allocate (GtkWidget  
   /* now the adjustments and window sizes are in sync, we can sync toprow/dy again */
   if (tree_view->priv->height <= tree_view->priv->vadjustment->page_size)
     gtk_adjustment_set_value (GTK_ADJUSTMENT (tree_view->priv->vadjustment), 0);
+  else if (tree_view->priv->vadjustment->value + tree_view->priv->vadjustment->page_size > tree_view->priv->height)
+    gtk_adjustment_set_value (GTK_ADJUSTMENT (tree_view->priv->vadjustment),
+                              tree_view->priv->height - tree_view->priv->vadjustment->page_size);
   else if (gtk_tree_row_reference_valid (tree_view->priv->top_row))
     gtk_tree_view_top_row_to_dy (tree_view);
   else
@ -5031,6 +5034,11 @@ validate_visible_area (GtkTreeView *tree
        * else than zero. we update top_row to be in sync with dy = 0.
        */
       gtk_adjustment_set_value (GTK_ADJUSTMENT (tree_view->priv->vadjustment), 0);
+      gtk_tree_view_dy_to_top_row (tree_view);
+    }
+  else if (tree_view->priv->vadjustment->value + tree_view->priv->vadjustment->page_size > tree_view->priv->height)
+    {
+      gtk_adjustment_set_value (GTK_ADJUSTMENT (tree_view->priv->vadjustment), tree_view->priv->height - tree_view->priv->vadjustment->page_size);
       gtk_tree_view_dy_to_top_row (tree_view);
     }
   else