]> Pileus Git - ~andy/gtk/commitdiff
Don't mysteriously go to the parent dir when hitting "Cancel" in folder
authorJames M. Cape <jcape@ignore-your.tv>
Wed, 3 Nov 2004 10:26:18 +0000 (10:26 +0000)
committerJames M. Cape <jcape@src.gnome.org>
Wed, 3 Nov 2004 10:26:18 +0000 (10:26 +0000)
2004-11-03  James M. Cape  <jcape@ignore-your.tv>

        * gtk/gtkfilechooserbutton.c (update_dialog), (dialog_response_cb):
        Don't mysteriously go to the parent dir when hitting "Cancel" in
        folder mode (fixes #156971).

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkfilechooserbutton.c

index 763d8421bf4ffec738f6b6e3357d60e39ffdb7ee..f019d343ee6df86caa9a74b9566b57912678212e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-11-03  James M. Cape  <jcape@ignore-your.tv>
+
+       * gtk/gtkfilechooserbutton.c (update_dialog), (dialog_response_cb):
+       Don't mysteriously go to the parent dir when hitting "Cancel" in
+       folder mode (fixes #156971).
+
 2004-11-03  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkaccellabel.c (gtk_accel_label_expose_event): Don't
index 763d8421bf4ffec738f6b6e3357d60e39ffdb7ee..f019d343ee6df86caa9a74b9566b57912678212e 100644 (file)
@@ -1,3 +1,9 @@
+2004-11-03  James M. Cape  <jcape@ignore-your.tv>
+
+       * gtk/gtkfilechooserbutton.c (update_dialog), (dialog_response_cb):
+       Don't mysteriously go to the parent dir when hitting "Cancel" in
+       folder mode (fixes #156971).
+
 2004-11-03  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkaccellabel.c (gtk_accel_label_expose_event): Don't
index 763d8421bf4ffec738f6b6e3357d60e39ffdb7ee..f019d343ee6df86caa9a74b9566b57912678212e 100644 (file)
@@ -1,3 +1,9 @@
+2004-11-03  James M. Cape  <jcape@ignore-your.tv>
+
+       * gtk/gtkfilechooserbutton.c (update_dialog), (dialog_response_cb):
+       Don't mysteriously go to the parent dir when hitting "Cancel" in
+       folder mode (fixes #156971).
+
 2004-11-03  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkaccellabel.c (gtk_accel_label_expose_event): Don't
index 763d8421bf4ffec738f6b6e3357d60e39ffdb7ee..f019d343ee6df86caa9a74b9566b57912678212e 100644 (file)
@@ -1,3 +1,9 @@
+2004-11-03  James M. Cape  <jcape@ignore-your.tv>
+
+       * gtk/gtkfilechooserbutton.c (update_dialog), (dialog_response_cb):
+       Don't mysteriously go to the parent dir when hitting "Cancel" in
+       folder mode (fixes #156971).
+
 2004-11-03  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkaccellabel.c (gtk_accel_label_expose_event): Don't
index f2b59d299dba7ff269eda1708100fa6a6e74ce44..502b061529a82f4d699fdeb14c5c8b2022838aea 100644 (file)
@@ -1435,17 +1435,26 @@ update_dialog (GtkFileChooserButton *button)
       gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (priv->dialog));
       if (folder_part)
        {
-         full_path = gtk_file_system_make_path (fs, folder_part, file_part, NULL);
-
          /* Entry contents don't exist. */
-         if (full_path)
-           _gtk_file_chooser_select_path (GTK_FILE_CHOOSER (priv->dialog),
-                                          full_path, NULL);
+         if (file_part && file_part[0] != '\0')
+           {
+             full_path = gtk_file_system_make_path (fs, folder_part, file_part,
+                                                    NULL);
+             if (full_path)
+               {
+                 _gtk_file_chooser_select_path (GTK_FILE_CHOOSER (priv->dialog),
+                                                full_path, NULL);
+                 gtk_file_path_free (full_path);
+               }
+             else
+               _gtk_file_chooser_set_current_folder_path (GTK_FILE_CHOOSER (priv->dialog),
+                                                          folder_part, NULL);
+           }
          else
-           _gtk_file_chooser_set_current_folder_path (GTK_FILE_CHOOSER (priv->dialog),
-                                                      folder_part, NULL);
-
-         gtk_file_path_free (full_path);
+           {
+             _gtk_file_chooser_set_current_folder_path (GTK_FILE_CHOOSER (priv->dialog),
+                                                        folder_part, NULL);
+           }
        }
       break;
 
@@ -1571,7 +1580,9 @@ dialog_response_cb (GtkFileChooser *dialog,
     }
   else
     {
+      g_signal_handler_block (priv->dialog, priv->dialog_selection_changed_id);
       update_dialog (user_data);
+      g_signal_handler_unblock (priv->dialog, priv->dialog_selection_changed_id);
     }
 
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->button), FALSE);