X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gtk%2Fxoptions.c;h=2806fb01b576effa4325a324a1aa300bd5f495bc;hb=5d0f6311ab9e40e026d6ba26fa15e4ba6a5aead3;hp=04d566a4e3906ccf48e8933f2d95eed9138cbbac;hpb=ea23332c1d3b1a588b67a961378a30965d16064b;p=xboard.git diff --git a/gtk/xoptions.c b/gtk/xoptions.c index 04d566a..2806fb0 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,14 @@ TypeInProc (GtkWidget *widget, GdkEventKey *event, gpointer gdata) shiftState = event->state & GDK_SHIFT_MASK; controlState = event->state & GDK_CONTROL_MASK; switch(event->keyval) { + 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 +1685,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); }