gtk+ r19335 - in branches/gtk-2-12: . gtk
- From: kristian svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r19335 - in branches/gtk-2-12: . gtk
- Date: Thu, 10 Jan 2008 10:38:40 +0000 (GMT)
Author: kristian
Date: Thu Jan 10 10:38:40 2008
New Revision: 19335
URL: http://svn.gnome.org/viewvc/gtk+?rev=19335&view=rev
Log:
2008-01-10 Kristian Rietveld <kris imendio com>
Merge from trunk (omitted unit test updates):
Fix #477175, reported by Juri Pakaste.
* gtk/gtktreeprivate.h:
* gtk/gtktreeview.c (gtk_tree_view_top_row_to_dy): do not set
tree_view->priv->dy here directly, just calculate the new value
and set it on the adjustment,
(gtk_tree_view_adjustment_changed): add guards to not call
gtk_tree_view_dy_to_top_row() if we are currently in
gtk_tree_view_top_row_to_dy(),
(gtk_tree_view_put): fix coordinate annotation: these are bin_window
coordinates, not tree coordinates,
(gtk_tree_view_real_start_editing): add cast.
Modified:
branches/gtk-2-12/ChangeLog
branches/gtk-2-12/gtk/gtktreeprivate.h
branches/gtk-2-12/gtk/gtktreeview.c
Modified: branches/gtk-2-12/gtk/gtktreeprivate.h
==============================================================================
--- branches/gtk-2-12/gtk/gtktreeprivate.h (original)
+++ branches/gtk-2-12/gtk/gtktreeprivate.h Thu Jan 10 10:38:40 2008
@@ -221,6 +221,8 @@
guint init_hadjust_value : 1;
+ guint in_top_row_to_dy : 1;
+
/* interactive search */
guint enable_search : 1;
guint disable_popdown : 1;
Modified: branches/gtk-2-12/gtk/gtktreeview.c
==============================================================================
--- branches/gtk-2-12/gtk/gtktreeview.c (original)
+++ branches/gtk-2-12/gtk/gtktreeview.c Thu Jan 10 10:38:40 2008
@@ -6367,6 +6367,7 @@
GtkTreePath *path;
GtkRBTree *tree;
GtkRBNode *node;
+ int new_dy;
if (tree_view->priv->top_row)
path = gtk_tree_row_reference_get_path (tree_view->priv->top_row);
@@ -6400,16 +6401,17 @@
return;
}
- tree_view->priv->dy = _gtk_rbtree_node_find_offset (tree, node);
- tree_view->priv->dy += tree_view->priv->top_row_dy;
+ new_dy = _gtk_rbtree_node_find_offset (tree, node);
+ new_dy += tree_view->priv->top_row_dy;
- if (tree_view->priv->dy + tree_view->priv->vadjustment->page_size > tree_view->priv->height)
- tree_view->priv->dy = tree_view->priv->height - tree_view->priv->vadjustment->page_size;
+ if (new_dy + tree_view->priv->vadjustment->page_size > tree_view->priv->height)
+ new_dy = tree_view->priv->height - tree_view->priv->vadjustment->page_size;
- tree_view->priv->dy = MAX (0, tree_view->priv->dy);
+ new_dy = MAX (0, new_dy);
- gtk_adjustment_set_value (tree_view->priv->vadjustment,
- (gdouble)tree_view->priv->dy);
+ tree_view->priv->in_top_row_to_dy = TRUE;
+ gtk_adjustment_set_value (tree_view->priv->vadjustment, (gdouble)new_dy);
+ tree_view->priv->in_top_row_to_dy = FALSE;
}
@@ -8081,7 +8083,7 @@
static void
gtk_tree_view_put (GtkTreeView *tree_view,
GtkWidget *child_widget,
- /* in tree coordinates */
+ /* in bin_window coordinates */
gint x,
gint y,
gint width,
@@ -10613,7 +10615,9 @@
{
/* update our dy and top_row */
tree_view->priv->dy = (int) tree_view->priv->vadjustment->value;
- gtk_tree_view_dy_to_top_row (tree_view);
+
+ if (!tree_view->priv->in_top_row_to_dy)
+ gtk_tree_view_dy_to_top_row (tree_view);
}
}
}
@@ -14792,8 +14796,7 @@
_gtk_tree_view_column_start_editing (column, GTK_CELL_EDITABLE (cell_editable));
gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE);
-
- cell_area->y += pre_val - tree_view->priv->vadjustment->value;
+ cell_area->y += pre_val - (int)tree_view->priv->vadjustment->value;
gtk_widget_size_request (GTK_WIDGET (cell_editable), &requisition);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]