X-Git-Url: http://winboard.nl/cgi-bin?p=xboard.git;a=blobdiff_plain;f=gtk%2Fxoptions.c;h=fbe1c232b4cc10be5e8cf25c0e15880da90f3541;hp=3684bf8d80bb9a699416d1daf4f3e2999a214468;hb=6487eb595b4ee51f8eab706698333e57c5dc4ff8;hpb=56fd0c5021f5074a510ae8f170338656ee243ec7 diff --git a/gtk/xoptions.c b/gtk/xoptions.c index 3684bf8..fbe1c23 100644 --- a/gtk/xoptions.c +++ b/gtk/xoptions.c @@ -1110,9 +1110,11 @@ BrowseCallback (GtkFileChooser *chooser, gpointer data) char *name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); Option *opt = currentOption + (int)(intptr_t) data; int n = (int) (intptr_t) opt->choice; - Preview(n, name); - messedUp = TRUE; - if(name) g_free(name); + if(name) { + Preview(n, name); + messedUp = TRUE; + g_free(name); + } return FALSE; } @@ -1124,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(); @@ -1148,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); @@ -1179,8 +1183,10 @@ void BrowseGTK(GtkWidget *widget, gpointer gdata) messedUp = FALSE; n = (int)(intptr_t) currentOption[opt_i].choice; - if (n && !currentCps) + 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), _("*** Board window shows preview of selection ***")); + } if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { @@ -1859,7 +1865,7 @@ if(appData.debugMode) printf("n=%d, h=%d, w=%d\n",n,height,width); gtk_window_resize(GTK_WINDOW(dialog), wp[dlgNr]->width, wp[dlgNr]->height); } - for(i=0; option[i].type != EndMark; i++) if(option[i].type == Graph || dlgNr == BoardWindow && option[i].handle) { + for(i=0; option[i].type != EndMark; i++) if(option[i].type == Graph || dlgNr == BoardWindow && option[i].handle && !appData.fixedSize) { gtk_widget_set_size_request(option[i].handle, -1, -1); // remove size requests after realization, so user can shrink if(option[i].type == Label) gtk_label_set_ellipsize(option[i].handle, PANGO_ELLIPSIZE_END); }