[gtk/gtk-4-6: 1/3] filechooser: Prevent random completion popups




commit fcab393c3b250e139afa5e2c9b3614b474c74f66
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Apr 16 23:29:04 2022 -0400

    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));


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]