diff options
Diffstat (limited to 'x11-libs/gtk+/files/1.2.10/gtk+-filesel-save-dir.patch')
-rw-r--r-- | x11-libs/gtk+/files/1.2.10/gtk+-filesel-save-dir.patch | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/x11-libs/gtk+/files/1.2.10/gtk+-filesel-save-dir.patch b/x11-libs/gtk+/files/1.2.10/gtk+-filesel-save-dir.patch new file mode 100644 index 000000000000..5584fdccf06a --- /dev/null +++ b/x11-libs/gtk+/files/1.2.10/gtk+-filesel-save-dir.patch @@ -0,0 +1,70 @@ +diff --exclude=Makefile.in -Nrc -x *~ gtk+-1.2.10.orig/gtk/gtkfilesel.c gtk+-1.2.10/gtk/gtkfilesel.c +*** gtk+-1.2.10.orig/gtk/gtkfilesel.c Fri Apr 13 02:25:17 2001 +--- gtk+-1.2.10/gtk/gtkfilesel.c Fri Apr 13 02:24:52 2001 +*************** +*** 2081,2086 **** +--- 2081,2088 ---- + + static GtkWindowClass *parent_class = NULL; + ++ static char *last_dir = NULL; ++ + /* Saves errno when something cmpl does fails. */ + static gint cmpl_errno; + +*************** +*** 2347,2353 **** + } + else + { +! gtk_file_selection_populate (filesel, "", FALSE); + } + + gtk_widget_grab_focus (filesel->selection_entry); +--- 2349,2362 ---- + } + else + { +! if (last_dir) +! { +! gtk_file_selection_populate (filesel, last_dir, FALSE); +! } +! else +! { +! gtk_file_selection_populate (filesel, "", FALSE); +! } + } + + gtk_widget_grab_focus (filesel->selection_entry); +*************** +*** 3309,3314 **** +--- 3318,3325 ---- + + if (!did_recurse) + { ++ char *dirname; ++ struct stat ent_sbuf; + if (fs->selection_entry) + gtk_entry_set_position (GTK_ENTRY (fs->selection_entry), selection_index); + +*************** +*** 1467,1472 **** +--- 1478,1495 ---- + gtk_file_selection_update_history_menu (fs, cmpl_reference_position (cmpl_state)); + } + ++ dirname = cmpl_reference_position (cmpl_state); ++ if(dirname && stat(dirname, &ent_sbuf) >= 0 && S_ISDIR(ent_sbuf.st_mode)) ++ { ++ if (last_dir) ++ { ++ g_free (last_dir); ++ } ++ ++ ++ ++ last_dir = g_strdup_printf ("%s%c", dirname, G_DIR_SEPARATOR); ++ } + } + } + |