diff options
author | Kristian Rietveld <kris@gtk.org> | 2002-11-20 18:15:28 +0000 |
---|---|---|
committer | Kristian Rietveld <kristian@src.gnome.org> | 2002-11-20 18:15:28 +0000 |
commit | 83e9cd53209b4d0636d01920afbb48458ef75739 (patch) | |
tree | bf8fa01d26fe8f313a3b34767586d7a4d39e3989 /gtk/gtktreeview.c | |
parent | bc035915e9406896c83a7cd6a132eb722229a876 (diff) | |
download | gdk-pixbuf-83e9cd53209b4d0636d01920afbb48458ef75739.tar.gz |
return a value in the range of [-1, 1] instead [0, 1],
Wed Nov 20 19:29:50 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtkrbtree.c (gtk_rbtree_reorder_sort_func): return a value
in the range of [-1, 1] instead [0, 1],
(gtk_rbtree_reorder_invert_func): ditto,
This makes treeview reordering working on platforms as FreeBSD and
solaris, thanks go to Heiner Eichmann for finding this out and
sending in a patch (#98251).
Wed Nov 20 19:27:07 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreestore.c (node_free): only free the data list if
node->data is not NULL,
(gtk_tree_store_remove): free the data list from the node if
needed. (#94728, pointed out by Peter Bloomfield).
Wed Nov 20 19:23:13 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_remove_column): stop editing
and set the edited_column to NULL if edited_column is set.
(#91288, modified patch from Josh Parsons).
Wed Nov 20 19:20:34 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): do a full
redraw if vadjustment->value is bigger than tree_view->priv->height,
(gtk_tree_view_row_deleted): free the row ref if it isn't valid
anymore. (#83726, reported by Robert Kinsella).
Diffstat (limited to 'gtk/gtktreeview.c')
-rw-r--r-- | gtk/gtktreeview.c | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 8ebf772f1..5fe798dae 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -1670,6 +1670,7 @@ gtk_tree_view_size_allocate (GtkWidget *widget, GList *tmp_list; GtkTreeView *tree_view; gboolean width_changed = FALSE; + gboolean dy_changed = FALSE; g_return_if_fail (GTK_IS_TREE_VIEW (widget)); @@ -1715,8 +1716,12 @@ gtk_tree_view_size_allocate (GtkWidget *widget, tree_view->priv->vadjustment->upper = MAX (tree_view->priv->vadjustment->page_size, tree_view->priv->height); if (tree_view->priv->vadjustment->value + allocation->height - TREE_VIEW_HEADER_HEIGHT (tree_view) > tree_view->priv->height) - gtk_adjustment_set_value (tree_view->priv->vadjustment, - MAX (tree_view->priv->height - tree_view->priv->vadjustment->page_size, 0)); + { + dy_changed = TRUE; + gtk_adjustment_set_value (tree_view->priv->vadjustment, + MAX (tree_view->priv->height - tree_view->priv->vadjustment->page_size, 0)); + } + gtk_adjustment_changed (tree_view->priv->vadjustment); if (GTK_WIDGET_REALIZED (widget)) @@ -1738,8 +1743,13 @@ gtk_tree_view_size_allocate (GtkWidget *widget, gtk_tree_view_size_allocate_columns (widget); - if (GTK_WIDGET_REALIZED (widget) && width_changed) - invalidate_last_column (tree_view); + if (GTK_WIDGET_REALIZED (widget)) + { + if (width_changed) + invalidate_last_column (tree_view); + if (dy_changed) + gtk_widget_queue_draw (widget); + } } static gboolean @@ -6175,6 +6185,12 @@ gtk_tree_view_row_deleted (GtkTreeModel *model, _gtk_rbtree_remove_node (tree, node); } + if (! gtk_tree_row_reference_valid (tree_view->priv->top_row)) + { + gtk_tree_row_reference_free (tree_view->priv->top_row); + tree_view->priv->top_row = NULL; + } + install_scroll_sync_handler (tree_view); gtk_widget_queue_resize (GTK_WIDGET (tree_view)); @@ -8209,11 +8225,19 @@ gtk_tree_view_remove_column (GtkTreeView *tree_view, g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN (column), -1); g_return_val_if_fail (column->tree_view == GTK_WIDGET (tree_view), -1); - _gtk_tree_view_column_unset_tree_view (column); - if (tree_view->priv->focus_column == column) tree_view->priv->focus_column = NULL; + if (tree_view->priv->edited_column == column) + { + gtk_tree_view_stop_editing (tree_view, TRUE); + + /* no need to, but just to be sure ... */ + tree_view->priv->edited_column = NULL; + } + + _gtk_tree_view_column_unset_tree_view (column); + tree_view->priv->columns = g_list_remove (tree_view->priv->columns, column); tree_view->priv->n_columns--; |