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



commit 27eea79537bbbb08360680fec79f9cf3d16536e6
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 13a552f..ed924fc 100644
--- a/gtk/gtkfilechooserbutton.c
+++ b/gtk/gtkfilechooserbutton.c
@@ -690,10 +690,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]