diff options
Diffstat (limited to 'gtk/gtklistbase.c')
-rw-r--r-- | gtk/gtklistbase.c | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/gtk/gtklistbase.c b/gtk/gtklistbase.c index 5a1a38e40a..2fab8c2700 100644 --- a/gtk/gtklistbase.c +++ b/gtk/gtklistbase.c @@ -2102,40 +2102,30 @@ gtk_list_base_grab_focus_on_item (GtkListBase *self, return TRUE; } -GListModel * +GtkSelectionModel * gtk_list_base_get_model (GtkListBase *self) { GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self); - return priv->model; + return GTK_SELECTION_MODEL (priv->model); } gboolean -gtk_list_base_set_model (GtkListBase *self, - GListModel *model) +gtk_list_base_set_model (GtkListBase *self, + GtkSelectionModel *model) { GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self); - if (priv->model == model) + if (priv->model == G_LIST_MODEL (model)) return FALSE; g_clear_object (&priv->model); if (model) { - GtkSelectionModel *selection_model; - - priv->model = g_object_ref (model); - - if (GTK_IS_SELECTION_MODEL (model)) - selection_model = GTK_SELECTION_MODEL (g_object_ref (model)); - else - selection_model = GTK_SELECTION_MODEL (gtk_single_selection_new (model)); - - gtk_list_item_manager_set_model (priv->item_manager, selection_model); + priv->model = g_object_ref (G_LIST_MODEL (model)); + gtk_list_item_manager_set_model (priv->item_manager, model); gtk_list_base_set_anchor (self, 0, 0.0, GTK_PACK_START, 0.0, GTK_PACK_START); - - g_object_unref (selection_model); } else { |