[gtk+] filechooserbutton: In SELECT_FOLDER mode, consider an empty selection to mean current_folder



commit c8403f697edef57f33c66d3d8deb1488db86d949
Author: Federico Mena Quintero <federico gnome org>
Date:   Wed Feb 13 12:12:50 2013 -0600

    filechooserbutton: In SELECT_FOLDER mode, consider an empty selection to mean current_folder
    
    If the user didn't explicitly select anything, BUT the file chooser button has
    a current_folder set, do the same as what GtkFileChooserDefault would do:
    return the current folder as the selection.
    
    This makes the tests in tests/filechooser pass!
    
    Signed-off-by: Federico Mena Quintero <federico gnome org>

 gtk/gtkfilechooserbutton.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkfilechooserbutton.c b/gtk/gtkfilechooserbutton.c
index eefabc7..252cd64 100644
--- a/gtk/gtkfilechooserbutton.c
+++ b/gtk/gtkfilechooserbutton.c
@@ -726,10 +726,18 @@ gtk_file_chooser_button_get_files (GtkFileChooser *chooser)
     {
       GSList *result;
 
+      result = NULL;
+
       if (priv->selection_while_inactive)
        result = g_slist_prepend (NULL, g_object_ref (priv->selection_while_inactive));
-      else
-       result = NULL;
+      else if (gtk_file_chooser_get_action (GTK_FILE_CHOOSER (priv->dialog)) == 
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)
+       {
+         /* If there is no "real" selection in SELECT_FOLDER mode, then we'll just return
+          * the current folder, since that is what GtkFileChooserDefault would do.
+          */
+         if (priv->current_folder_while_inactive)
+           result = g_slist_prepend (NULL, g_object_ref (priv->current_folder_while_inactive));
+       }
 
       return result;
     }


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