[gtk+/gtk-2-24] GtkFileChooserEntry: don't inline-complete if the entry doesn't have the focus



commit f27c1f45b796fedf0bcf493641db9f9b148e6221
Author: Federico Mena Quintero <federico gnome org>
Date:   Fri Jun 21 18:34:31 2013 -0500

    GtkFileChooserEntry: don't inline-complete if the entry doesn't have the focus
    
    When the file chooser changes directories, it tells the GtkFileChooserEntry to
    change its base folder (i.e. the folder from which relative pathnames are resolved).
    GtkFileChooserEntry then starts loading a GtkFileSystemModel asynchronously.
    In the finished_loading_cb(), however, it would always ask the GtkEntryCompletion
    to insert the completion prefix, since that finished_loading_cb() is what is also used
    while the user is typing *in the entry*.
    
    But when the entry doesn't have the focus (e.g. the user changed directories by double-clicking
    on the file list in the file chooser), there's no reason to insert completions at all.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=672271
    Signed-off-by: Federico Mena Quintero <federico gnome org>

 gtk/gtkfilechooserentry.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkfilechooserentry.c b/gtk/gtkfilechooserentry.c
index c360aba..a74a8f0 100644
--- a/gtk/gtkfilechooserentry.c
+++ b/gtk/gtkfilechooserentry.c
@@ -551,8 +551,12 @@ finished_loading_cb (GtkFileSystemModel  *model,
 
   completion = gtk_entry_get_completion (GTK_ENTRY (chooser_entry));
   update_inline_completion (chooser_entry);
-  gtk_entry_completion_complete (completion);
-  gtk_entry_completion_insert_prefix (completion);
+
+  if (gtk_widget_has_focus (GTK_WIDGET (chooser_entry)))
+    {
+      gtk_entry_completion_complete (completion);
+      gtk_entry_completion_insert_prefix (completion);
+    }
 }
 
 static void


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