diff options
author | Owen Taylor <otaylor@redhat.com> | 2004-03-02 18:56:10 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2004-03-02 18:56:10 +0000 |
commit | 1d64b555390554571c935d835855e07b160b077e (patch) | |
tree | d6919d83c7186e13a3e8edcacd641d10f935f6e2 /gtk/gtkcellview.c | |
parent | de011a6d9c632b119a01bf7bede1d224daa66fa1 (diff) | |
download | gtk+-1d64b555390554571c935d835855e07b160b077e.tar.gz |
Always connect to the changed signals on the model, update the active item
Tue Mar 2 11:45:50 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcombobox.c: Always connect to the changed
signals on the model, update the active item as
appropriate when rows are inserted/deleted/reordered,
re-layout the menu on ::rows-reordered.
* gtk/gtkcellview.c (gtk_cell_view_set_displayed_row):
Allow %NULL for path to unset and leave no current
path.
Diffstat (limited to 'gtk/gtkcellview.c')
-rw-r--r-- | gtk/gtkcellview.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/gtk/gtkcellview.c b/gtk/gtkcellview.c index d5a6e561f3..452d8d6ca0 100644 --- a/gtk/gtkcellview.c +++ b/gtk/gtkcellview.c @@ -877,19 +877,35 @@ gtk_cell_view_set_model (GtkCellView *cell_view, g_object_ref (G_OBJECT (cell_view->priv->model)); } +/** + * gtk_cell_view_set_displayed_row: + * @cell_view: a #GtkCellView + * @path: a #GtkTreePath or %NULL to unset. + * + * Sets the row of the model that is currently displayed + * by the #GtkCellView. If the path is unset, then the + * contents of the cellview "stick" at their last value; + * this is not normally a desired result, but may be + * a needed intermediate state if say, the model for + * the #GtkCellView becomes temporarily empty. + **/ void gtk_cell_view_set_displayed_row (GtkCellView *cell_view, GtkTreePath *path) { g_return_if_fail (GTK_IS_CELL_VIEW (cell_view)); g_return_if_fail (GTK_IS_TREE_MODEL (cell_view->priv->model)); - g_return_if_fail (path != NULL); if (cell_view->priv->displayed_row) gtk_tree_row_reference_free (cell_view->priv->displayed_row); - cell_view->priv->displayed_row = - gtk_tree_row_reference_new (cell_view->priv->model, path); + if (path) + { + cell_view->priv->displayed_row = + gtk_tree_row_reference_new (cell_view->priv->model, path); + } + else + cell_view->priv->displayed_row = NULL; /* force resize and redraw */ gtk_widget_queue_resize (GTK_WIDGET (cell_view)); |