From f396a237dddcda8b85147f2bf4eb0fd8df994bc3 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Sat, 14 Jan 2006 19:41:07 +0000 Subject: fixup adjustments and top_row if the current dy + page_size exceeds the 2006-01-14 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_size_allocate), (validate_visible_area): fixup adjustments and top_row if the current dy + page_size exceeds the new tree view height. (Fixes #316689, reported by Chris Lord). --- gtk/gtktreeview.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gtk') diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index d9587bc281..afa17e54bd 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -2129,6 +2129,9 @@ gtk_tree_view_size_allocate (GtkWidget *widget, /* 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 @@ -5067,6 +5070,11 @@ validate_visible_area (GtkTreeView *tree_view) 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 gtk_tree_view_top_row_to_dy (tree_view); -- cgit v1.2.1