X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gtk%2Fxoptions.c;h=6cf117ad01796461ae91699c13e0bcb1e8789895;hb=fafca253f3540ba9f65f8d2ec19ff6091f5f9c5d;hp=04d566a4e3906ccf48e8933f2d95eed9138cbbac;hpb=51e9503489f2cee28a076bf52c56185a5283b069;p=xboard.git diff --git a/gtk/xoptions.c b/gtk/xoptions.c index 04d566a..6cf117a 100644 --- a/gtk/xoptions.c +++ b/gtk/xoptions.c @@ -350,6 +350,7 @@ FocusOnWidget (Option *opt, DialogClass dlg) #ifdef TODO_GTK XtSetKeyboardFocus(shells[dlg], opt->handle); #endif + if(dlg) gtk_window_present(GTK_WINDOW(shells[dlg])); gtk_widget_grab_focus(opt->handle); } @@ -502,13 +503,16 @@ TypeInProc (GtkWidget *widget, GdkEventKey *event, gpointer gdata) shiftState = event->state & GDK_SHIFT_MASK; controlState = event->state & GDK_CONTROL_MASK; switch(event->keyval) { + case 'n': return (controlState && IcsHist(14, opt, dlg)); + case 'o': return (controlState && IcsHist(15, opt, dlg)); + case GDK_Tab: IcsHist(10, opt, dlg); break; case GDK_Up: IcsHist(1, opt, dlg); break; case GDK_Down: IcsHist(-1, opt, dlg); break; case GDK_Return: if(GenericReadout(dialogOptions[dlg], -1)) PopDown(dlg); break; case GDK_Escape: - PopDown(dlg); + if(!IcsHist(33, opt, dlg)) PopDown(dlg); break; default: return FALSE; @@ -1683,7 +1687,7 @@ SetInsertPos (Option *opt, int pos) } void -HardSetFocus (Option *opt) +HardSetFocus (Option *opt, DialogClass dlg) { - FocusOnWidget(opt, 0); // second arg not used in GDK + FocusOnWidget(opt, dlg); }