From: Matthias Clasen Date: Sun, 17 Apr 2022 03:29:04 +0000 (-0400) Subject: filechooser: Prevent random completion popups X-Git-Tag: archive/raspbian/4.6.5+ds-1+rpi1~1^2~19^2~1^2~41^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=fcab393c3b250e139afa5e2c9b3614b474c74f66;p=gtk4.git filechooser: Prevent random completion popups It is very irritating when the entry completion popup appears not in response to user input in the entry. In particular, when that happens right as the dialog is shown. To prevent that, temporarily disable completion when setting the entry text programmatically. --- diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index a2310f35d8..f08e5ad6ea 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -4748,9 +4748,15 @@ update_chooser_entry (GtkFileChooserWidget *impl) if (change_entry && !impl->auto_selecting_first_row) { + GtkEntryCompletion *completion = gtk_entry_get_completion (GTK_ENTRY (impl->location_entry)); + + if (completion) + gtk_entry_completion_set_popup_completion (completion, FALSE); g_signal_handlers_block_by_func (impl->location_entry, G_CALLBACK (location_entry_changed_cb), impl); gtk_editable_set_text (GTK_EDITABLE (impl->location_entry), impl->browse_files_last_selected_name); g_signal_handlers_unblock_by_func (impl->location_entry, G_CALLBACK (location_entry_changed_cb), impl); + if (completion) + gtk_entry_completion_set_popup_completion (completion, TRUE); if (impl->action == GTK_FILE_CHOOSER_ACTION_SAVE) _gtk_file_chooser_entry_select_filename (GTK_FILE_CHOOSER_ENTRY (impl->location_entry));