X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gtk%2Fxoptions.c;h=48da90bd6a1e2ae691f005dfba6870b44527a85a;hb=f24db00b2a6580f64ed6c0863888ec8fa3c2907a;hp=0d3683004cf79390d592283fd0a7d73a642c313e;hpb=c927f6b84a06bd7ed84adf0216b24acb042115d2;p=xboard.git diff --git a/gtk/xoptions.c b/gtk/xoptions.c index 0d36830..48da90b 100644 --- a/gtk/xoptions.c +++ b/gtk/xoptions.c @@ -502,6 +502,8 @@ TypeInProc (GtkWidget *widget, GdkEventKey *event, gpointer gdata) shiftState = event->state & GDK_SHIFT_MASK; controlState = event->state & GDK_CONTROL_MASK; switch(event->keyval) { + case 'e': return (controlState && IcsHist( 5, opt, dlg)); + case 'h': return (controlState && IcsHist( 8, opt, dlg)); case 'n': return (controlState && IcsHist(14, opt, dlg)); case 'o': return (controlState && IcsHist(15, opt, dlg)); case GDK_Tab: IcsHist(10, opt, dlg); break; @@ -1016,7 +1018,9 @@ void BrowseGTK(GtkWidget *widget, gpointer gdata) gtkfilter = gtk_file_filter_new(); gtkfilter_all = gtk_file_filter_new(); - char fileext[MSG_SIZ]; + char fileext[MSG_SIZ], *filter = currentOption[opt_i].textValue; + + StartDir(filter, NULL); // change to start directory for this file type /* select file or folder depending on option_type */ if (currentOption[opt_i].type == PathName) @@ -1060,9 +1064,10 @@ void BrowseGTK(GtkWidget *widget, gpointer gdata) filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); entry = currentOption[opt_i].handle; gtk_entry_set_text (GTK_ENTRY (entry), filename); + StartDir(filter, filename); // back to original, and remember this one g_free (filename); - } + else StartDir(filter, ""); // change back to original directory gtk_widget_destroy (dialog); dialog = NULL; } @@ -1430,7 +1435,7 @@ if(appData.debugMode) printf("n=%d, h=%d, w=%d\n",n,height,width); g_signal_connect(label, "button-press-event", G_CALLBACK(MemoEvent), (gpointer) &option[i]); gtk_widget_set_sensitive(label, TRUE); } - Pack(hbox, table, label, left, left+2, top, 0); + Pack(hbox, table, label, left, left+r, top, 0); break; case SaveButton: case Button: @@ -1529,7 +1534,7 @@ if(appData.debugMode) printf("n=%d, h=%d, w=%d\n",n,height,width); break; case Graph: option[i].handle = (void*) (graph = gtk_drawing_area_new()); -// gtk_widget_set_size_request(graph, option[i].max, option[i].value); + gtk_widget_set_size_request(graph, option[i].max, option[i].value); if(0){ GtkAllocation a; a.x = 0; a.y = 0; a.width = option[i].max, a.height = option[i].value; gtk_widget_set_allocation(graph, &a); @@ -1563,12 +1568,16 @@ if(appData.debugMode) printf("n=%d, h=%d, w=%d\n",n,height,width); top--; msg = _(option[i].name); // write name on the menu button #ifndef OSXAPP - if(tinyLayout) { strcpy(def, msg); def[tinyLayout] = NULLCHAR; msg = def; } // clip menu text to keep menu bar small + if(tinyLayout) { // clip menu text to keep menu bar small + int clip = tinyLayout + 1; + strcpy(def, msg + (msg[clip-1] == '_')); + def[clip] = NULLCHAR; msg = def; + } #endif // XtSetArg(args[j], XtNmenuName, XtNewString(option[i].name)); j++; // XtSetArg(args[j], XtNlabel, msg); j++; option[i].handle = (void*) - (menuButton = gtk_menu_item_new_with_label(msg)); + (menuButton = gtk_menu_item_new_with_mnemonic(msg)); gtk_widget_show(menuButton); option[i].textValue = (char*) (menu = CreateMenuPopup(option + i, i + 256*dlgNr, -1)); gtk_menu_item_set_submenu(GTK_MENU_ITEM (menuButton), menu); @@ -1627,6 +1636,11 @@ if(appData.debugMode) printf("n=%d, h=%d, w=%d\n",n,height,width); } gtk_table_resize(GTK_TABLE(table), top+1, r); + if(dlgNr == BoardWindow && appData.fixedSize) { // inhibit sizing + GtkWidget *h = gtk_hbox_new(FALSE, 0); + gtk_box_pack_start (GTK_BOX (h), table, TRUE, FALSE, 2); + table = h; + } if(pane) gtk_box_pack_start (GTK_BOX (pane), table, expandable, TRUE, 0); else @@ -1666,6 +1680,9 @@ 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) + gtk_widget_set_size_request(option[i].handle, -1, -1); // remove size requests after realization, so user can shrink + return 1; // tells caller he must do initialization (e.g. add specific event handlers) }