disconnect_by_func instead of disconnect_by_data. Someone else could use
Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com> * gtk/gtktreeview.c (gtk_tree_view_set_adjustments): disconnect_by_func instead of disconnect_by_data. Someone else could use the same data as us. * gtk/gtktreeview.c (do_validate_rows): update the adjustment immediately after we update the size. Fixes some scroll_to bugs. (validate_visible_area): ditto
This commit is contained in:
committed by
Jonathan Blandford
parent
1d7f1372d0
commit
1dc1b2c93f
10
ChangeLog
10
ChangeLog
@@ -1,3 +1,13 @@
|
||||
Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_set_adjustments):
|
||||
disconnect_by_func instead of disconnect_by_data. Someone else
|
||||
could use the same data as us.
|
||||
|
||||
* gtk/gtktreeview.c (do_validate_rows): update the adjustment
|
||||
immediately after we update the size. Fixes some scroll_to bugs.
|
||||
(validate_visible_area): ditto
|
||||
|
||||
Fri Jun 14 10:31:59 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/x11/gdkevents-x11.c (gdk_check_wm_state_changed):
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_set_adjustments):
|
||||
disconnect_by_func instead of disconnect_by_data. Someone else
|
||||
could use the same data as us.
|
||||
|
||||
* gtk/gtktreeview.c (do_validate_rows): update the adjustment
|
||||
immediately after we update the size. Fixes some scroll_to bugs.
|
||||
(validate_visible_area): ditto
|
||||
|
||||
Fri Jun 14 10:31:59 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/x11/gdkevents-x11.c (gdk_check_wm_state_changed):
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_set_adjustments):
|
||||
disconnect_by_func instead of disconnect_by_data. Someone else
|
||||
could use the same data as us.
|
||||
|
||||
* gtk/gtktreeview.c (do_validate_rows): update the adjustment
|
||||
immediately after we update the size. Fixes some scroll_to bugs.
|
||||
(validate_visible_area): ditto
|
||||
|
||||
Fri Jun 14 10:31:59 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/x11/gdkevents-x11.c (gdk_check_wm_state_changed):
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_set_adjustments):
|
||||
disconnect_by_func instead of disconnect_by_data. Someone else
|
||||
could use the same data as us.
|
||||
|
||||
* gtk/gtktreeview.c (do_validate_rows): update the adjustment
|
||||
immediately after we update the size. Fixes some scroll_to bugs.
|
||||
(validate_visible_area): ditto
|
||||
|
||||
Fri Jun 14 10:31:59 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/x11/gdkevents-x11.c (gdk_check_wm_state_changed):
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_set_adjustments):
|
||||
disconnect_by_func instead of disconnect_by_data. Someone else
|
||||
could use the same data as us.
|
||||
|
||||
* gtk/gtktreeview.c (do_validate_rows): update the adjustment
|
||||
immediately after we update the size. Fixes some scroll_to bugs.
|
||||
(validate_visible_area): ditto
|
||||
|
||||
Fri Jun 14 10:31:59 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/x11/gdkevents-x11.c (gdk_check_wm_state_changed):
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
Fri Jun 14 15:09:11 2002 Jonathan Blandford <jrb@redhat.com>
|
||||
|
||||
* gtk/gtktreeview.c (gtk_tree_view_set_adjustments):
|
||||
disconnect_by_func instead of disconnect_by_data. Someone else
|
||||
could use the same data as us.
|
||||
|
||||
* gtk/gtktreeview.c (do_validate_rows): update the adjustment
|
||||
immediately after we update the size. Fixes some scroll_to bugs.
|
||||
(validate_visible_area): ditto
|
||||
|
||||
Fri Jun 14 10:31:59 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/x11/gdkevents-x11.c (gdk_check_wm_state_changed):
|
||||
|
||||
@@ -3900,6 +3900,19 @@ validate_visible_area (GtkTreeView *tree_view)
|
||||
modify_dy = TRUE;
|
||||
}
|
||||
|
||||
if (size_changed)
|
||||
{
|
||||
GtkRequisition requisition;
|
||||
/* We temporarily guess a size, under the assumption that it will be the
|
||||
* same when we get our next size_allocate. If we don't do this, we'll be
|
||||
* in an inconsistent state if we call top_row_to_dy. */
|
||||
tree_view->priv->hadjustment->upper = MAX (tree_view->priv->hadjustment->upper, (gfloat)requisition.width);
|
||||
tree_view->priv->vadjustment->upper = MAX (tree_view->priv->vadjustment->upper, (gfloat)requisition.height);
|
||||
gtk_adjustment_changed (tree_view->priv->hadjustment);
|
||||
gtk_adjustment_changed (tree_view->priv->vadjustment);
|
||||
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
|
||||
}
|
||||
|
||||
/* if we walk backwards at all, then we need to reset our dy. */
|
||||
if (modify_dy)
|
||||
{
|
||||
@@ -3929,8 +3942,6 @@ validate_visible_area (GtkTreeView *tree_view)
|
||||
{
|
||||
tree_view->priv->scroll_to_column = NULL;
|
||||
}
|
||||
if (size_changed)
|
||||
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
|
||||
if (need_redraw)
|
||||
gtk_widget_queue_draw (GTK_WIDGET (tree_view));
|
||||
}
|
||||
@@ -4049,14 +4060,26 @@ do_validate_rows (GtkTreeView *tree_view)
|
||||
}
|
||||
|
||||
done:
|
||||
if (validated_area)
|
||||
{
|
||||
GtkRequisition requisition;
|
||||
/* We temporarily guess a size, under the assumption that it will be the
|
||||
* same when we get our next size_allocate. If we don't do this, we'll be
|
||||
* in an inconsistent state when we call top_row_to_dy. */
|
||||
gtk_widget_size_request (GTK_WIDGET (tree_view), &requisition);
|
||||
tree_view->priv->hadjustment->upper = MAX (tree_view->priv->hadjustment->upper, (gfloat)requisition.width);
|
||||
tree_view->priv->vadjustment->upper = MAX (tree_view->priv->vadjustment->upper, (gfloat)requisition.height);
|
||||
gtk_adjustment_changed (tree_view->priv->hadjustment);
|
||||
gtk_adjustment_changed (tree_view->priv->vadjustment);
|
||||
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
if (path) gtk_tree_path_free (path);
|
||||
if (validated_area)
|
||||
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
|
||||
if (! retval)
|
||||
tree_view->priv->validate_rows_timer = 0;
|
||||
|
||||
@@ -4224,9 +4247,10 @@ gtk_tree_view_top_row_to_dy (GtkTreeView *tree_view)
|
||||
tree_view->priv->dy = _gtk_rbtree_node_find_offset (tree, node);
|
||||
tree_view->priv->dy += tree_view->priv->top_row_dy;
|
||||
gtk_adjustment_set_value (tree_view->priv->vadjustment,
|
||||
tree_view->priv->dy);
|
||||
(gdouble)tree_view->priv->dy);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
_gtk_tree_view_install_mark_rows_col_dirty (GtkTreeView *tree_view)
|
||||
{
|
||||
@@ -5516,13 +5540,13 @@ gtk_tree_view_set_adjustments (GtkTreeView *tree_view,
|
||||
|
||||
if (tree_view->priv->hadjustment && (tree_view->priv->hadjustment != hadj))
|
||||
{
|
||||
gtk_signal_disconnect_by_data (GTK_OBJECT (tree_view->priv->hadjustment), tree_view);
|
||||
gtk_signal_disconnect_by_func (GTK_OBJECT (tree_view->priv->hadjustment), (GtkSignalFunc) gtk_tree_view_adjustment_changed, tree_view);
|
||||
gtk_object_unref (GTK_OBJECT (tree_view->priv->hadjustment));
|
||||
}
|
||||
|
||||
if (tree_view->priv->vadjustment && (tree_view->priv->vadjustment != vadj))
|
||||
{
|
||||
gtk_signal_disconnect_by_data (GTK_OBJECT (tree_view->priv->vadjustment), tree_view);
|
||||
gtk_signal_disconnect_by_func (GTK_OBJECT (tree_view->priv->vadjustment), (GtkSignalFunc) gtk_tree_view_adjustment_changed, tree_view);
|
||||
gtk_object_unref (GTK_OBJECT (tree_view->priv->vadjustment));
|
||||
}
|
||||
|
||||
@@ -7479,6 +7503,7 @@ gtk_tree_view_adjustment_changed (GtkAdjustment *adjustment,
|
||||
gtk_tree_view_dy_to_top_row (tree_view);
|
||||
gdk_window_process_updates (tree_view->priv->bin_window, TRUE);
|
||||
gdk_window_process_updates (tree_view->priv->header_window, TRUE);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user