After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 60166 - Unintuitive GtkFilesel behaviour
Unintuitive GtkFilesel behaviour
Status: RESOLVED DUPLICATE of bug 6791
Product: gtk+
Classification: Platform
Component: Widget: GtkFileChooser
1.2.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2001-09-07 06:11 UTC by Wolfgang Sourdeau
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Wolfgang Sourdeau 2001-09-07 06:11:20 UTC
When selecting a directory or by double-clicking on it, any 
previously entered in the filenamefs->selection_entry disappears. This is
annoying and unexpected for end-users. The following diff fixes this problem. 

----
diff -durpN gtk+-1.2.10.orig/ChangeLog gtk+-1.2.10/ChangeLog
--- gtk+-1.2.10.orig/ChangeLog	Sun Apr  1 23:02:03 2001
+++ gtk+-1.2.10/ChangeLog	Thu Sep  6 16:14:20 2001
@@ -1,3 +1,11 @@
+2001-09-06  Wolfgang Sourdeau  <wolfgang@contre.com>
+
+
* gtk/gtkfilesel.c (gtk_file_selection_populate): file name is
+
kept intact in fs->selection_entry when browsing directories.
+
(gtk_file_selection_dir_button): when a filename is selected,
+
don't delete it from fs->selection_entry when a directory is
+
clicked on.
+
 Sun Apr  1 23:01:31 2001  Owen Taylor  <otaylor@redhat.com>
 
 	* Released 1.2.10.
diff -durpN gtk+-1.2.10.orig/gtk/gtkfilesel.c gtk+-1.2.10/gtk/gtkfilesel.c
--- gtk+-1.2.10.orig/gtk/gtkfilesel.c	Thu Feb 15 23:36:19 2001
+++ gtk+-1.2.10/gtk/gtkfilesel.c	Thu Sep  6 16:13:42 2001
@@ -1272,7 +1272,7 @@ gtk_file_selection_dir_button (GtkWidget
 
		       gpointer user_data)
 {
   GtkFileSelection *fs = NULL;
-  gchar *filename, *temp = NULL;
+  gchar *orig_filename = NULL, *filename, *temp = NULL;
 
   g_return_if_fail (GTK_IS_CLIST (widget));
 
@@ -1281,7 +1281,12 @@ gtk_file_selection_dir_button (GtkWidget
   g_return_if_fail (GTK_IS_FILE_SELECTION (fs));
 
   gtk_clist_get_text (GTK_CLIST (fs->dir_list), row, 0, &temp);
-  filename = g_strdup (temp);
+  orig_filename = gtk_entry_get_text (GTK_ENTRY (fs->selection_entry));
+
+  if (orig_filename && *g_basename (orig_filename))
+    filename = g_strdup_printf ("%s%s", temp, g_basename(orig_filename));
+  else
+    filename = g_strdup (temp);
   if (filename)
     {
@@ -1444,7 +1449,11 @@ gtk_file_selection_populate (GtkFileSele
   else
     {
       if (fs->selection_entry)
-
gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), "");
+
{
+
  text[0] = gtk_entry_get_text (GTK_ENTRY (fs->selection_entry));
+
  filename = g_basename (text[0]);
+
  gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
+
}
     }
 
   if (!did_recurse)
----
Comment 1 Wolfgang Sourdeau 2001-09-19 05:49:36 UTC
The inline patch is faulty, I should write a better one.
Comment 2 Owen Taylor 2001-09-19 15:54:24 UTC

*** This bug has been marked as a duplicate of 6791 ***