[gtk+] treeview: Use gtk_adjustment_configure()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] treeview: Use gtk_adjustment_configure()
- Date: Thu, 13 Jun 2013 13:32:08 +0000 (UTC)
commit 0d55d9b96bf1774bd0c9ac27e3157bdf896acca7
Author: Benjamin Otte <otte redhat com>
Date: Fri May 31 12:38:40 2013 +0200
treeview: Use gtk_adjustment_configure()
... instead of manually setting all the values. Makes for nicer code and
less signal emissions.
gtk/gtktreeview.c | 31 +++++++++++--------------------
1 files changed, 11 insertions(+), 20 deletions(-)
---
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index adc3713..9393612 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -2737,6 +2737,7 @@ gtk_tree_view_size_allocate (GtkWidget *widget,
GList *tmp_list;
gboolean width_changed = FALSE;
gint old_width;
+ double page_size;
gtk_widget_get_allocation (widget, &widget_allocation);
old_width = widget_allocation.width;
@@ -2795,27 +2796,17 @@ gtk_tree_view_size_allocate (GtkWidget *widget,
MAX (tree_view->priv->width -
allocation->width, 0));
- g_object_freeze_notify (G_OBJECT (tree_view->priv->vadjustment));
- gtk_adjustment_set_page_size (tree_view->priv->vadjustment,
- allocation->height -
- gtk_tree_view_get_effective_header_height (tree_view));
- gtk_adjustment_set_step_increment (tree_view->priv->vadjustment,
- gtk_adjustment_get_page_size (tree_view->priv->vadjustment) * 0.1);
- gtk_adjustment_set_page_increment (tree_view->priv->vadjustment,
- gtk_adjustment_get_page_size (tree_view->priv->vadjustment) * 0.9);
- gtk_adjustment_set_lower (tree_view->priv->vadjustment, 0);
- gtk_adjustment_set_upper (tree_view->priv->vadjustment,
- MAX (gtk_adjustment_get_page_size (tree_view->priv->vadjustment),
- gtk_tree_view_get_height (tree_view)));
- g_object_thaw_notify (G_OBJECT (tree_view->priv->vadjustment));
-
+ page_size = allocation->height - gtk_tree_view_get_effective_header_height (tree_view);
+ gtk_adjustment_configure (tree_view->priv->vadjustment,
+ gtk_adjustment_get_value (tree_view->priv->vadjustment),
+ 0,
+ MAX (page_size, gtk_tree_view_get_height (tree_view)),
+ page_size * 0.1,
+ page_size * 0.9,
+ page_size);
+
/* now the adjustments and window sizes are in sync, we can sync toprow/dy again */
- if (gtk_tree_view_get_height (tree_view) <= gtk_adjustment_get_page_size (tree_view->priv->vadjustment))
- gtk_adjustment_set_value (GTK_ADJUSTMENT (tree_view->priv->vadjustment), 0);
- else if (gtk_adjustment_get_value (tree_view->priv->vadjustment) + gtk_adjustment_get_page_size
(tree_view->priv->vadjustment) > gtk_tree_view_get_height (tree_view))
- gtk_adjustment_set_value (GTK_ADJUSTMENT (tree_view->priv->vadjustment),
- gtk_tree_view_get_height (tree_view) - gtk_adjustment_get_page_size
(tree_view->priv->vadjustment));
- else if (gtk_tree_row_reference_valid (tree_view->priv->top_row))
+ if (gtk_tree_row_reference_valid (tree_view->priv->top_row))
gtk_tree_view_top_row_to_dy (tree_view);
else
gtk_tree_view_dy_to_top_row (tree_view);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]