From fcab393c3b250e139afa5e2c9b3614b474c74f66 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 16 Apr 2022 23:29:04 -0400 Subject: [PATCH] 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. --- gtk/gtkfilechooserwidget.c | 6 ++++++ 1 file changed, 6 insertions(+) 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)); -- 2.30.2