From: Benjamin Otte Date: Wed, 29 Mar 2023 04:26:03 +0000 (+0200) Subject: filechooser: Select via action X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~484^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=0834dc50aa0209e45e51be37983edabb5370a9e9;p=gtk4.git filechooser: Select via action Don't fudge around poking through the listview, trying to get a model and selecting it directly. Instead, use the proper way and activate the "listitem.select" action. --- diff --git a/gtk/gtkfilechoosercell.c b/gtk/gtkfilechoosercell.c index 3e02d28302..8173bcb1d7 100644 --- a/gtk/gtkfilechoosercell.c +++ b/gtk/gtkfilechoosercell.c @@ -69,14 +69,12 @@ popup_menu (GtkFileChooserCell *self, double y) { GtkWidget *widget = GTK_WIDGET (self); - GtkSelectionModel *model; GtkWidget *impl; graphene_point_t p; - impl = gtk_widget_get_ancestor (widget, GTK_TYPE_FILE_CHOOSER_WIDGET); + gtk_widget_activate_action (GTK_WIDGET (self), "listitem.select", "(bb)", FALSE, FALSE); - model = gtk_file_chooser_widget_get_selection_model (GTK_FILE_CHOOSER_WIDGET (impl)); - gtk_selection_model_select_item (model, self->position, TRUE); + impl = gtk_widget_get_ancestor (widget, GTK_TYPE_FILE_CHOOSER_WIDGET); if (!gtk_widget_compute_point (widget, GTK_WIDGET (impl), &GRAPHENE_POINT_INIT (x, y), &p)) @@ -129,10 +127,9 @@ drag_prepare_cb (GtkDragSource *source, impl = GTK_FILE_CHOOSER_WIDGET (gtk_widget_get_ancestor (GTK_WIDGET (self), GTK_TYPE_FILE_CHOOSER_WIDGET)); - if (!self->selected) + if (self->list_item && !gtk_list_item_get_selected (self->list_item)) { - gtk_selection_model_select_item (gtk_file_chooser_widget_get_selection_model (impl), - self->position, TRUE); + gtk_widget_activate_action (GTK_WIDGET (self), "listitem.select", "(bb)", FALSE, FALSE); } selection = gtk_file_chooser_widget_get_selected_files (impl);