Also supply shortcut for start directory in GTK file chooser
[xboard.git] / gtk / xoptions.c
index f64a2d5..fbe1c23 100644 (file)
@@ -1126,7 +1126,7 @@ void BrowseGTK(GtkWidget *widget, gpointer gdata)
     GtkFileFilter *gtkfilter_all;
     int n, opt_i = (intptr_t) gdata;
     GtkFileChooserAction fc_action;
-    char buf[MSG_SIZ];
+    char buf[MSG_SIZ], *p;
 
     gtkfilter     = gtk_file_filter_new();
     gtkfilter_all = gtk_file_filter_new();
@@ -1150,6 +1150,8 @@ void BrowseGTK(GtkWidget *widget, gpointer gdata)
                       GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
                       NULL);
 
+    if(*chessDir && (!(p = strstr(chessDir, "/home/")) || strchr(p+6, '/')))
+    gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(dialog), chessDir, NULL);
     gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(dialog), dataDir, NULL);
     snprintf(buf, MSG_SIZ, "%s/themes", dataDir);
     gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(dialog), buf, NULL);
@@ -1183,7 +1185,7 @@ void BrowseGTK(GtkWidget *widget, gpointer gdata)
     n = (int)(intptr_t) currentOption[opt_i].choice;
     if (n && !currentCps) {
       g_signal_connect (GTK_DIALOG (dialog), "selection-changed", G_CALLBACK(BrowseCallback), (gpointer)(intptr_t) opt_i);
-      gtk_window_set_title(GTK_WINDOW(dialog), _("*** Preview of selection in board window ***"));
+      gtk_window_set_title(GTK_WINDOW(dialog), _("*** Board window shows preview of selection ***"));
     }
 
     if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)