#ifdef TODO_GTK
XtSetKeyboardFocus(shells[dlg], opt->handle);
#endif
+ if(dlg) gtk_window_present(GTK_WINDOW(shells[dlg]));
gtk_widget_grab_focus(opt->handle);
}
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;
GtkWidget *shells[NrOfDialogs];
DialogClass parents[NrOfDialogs];
WindowPlacement *wp[NrOfDialogs] = { // Beware! Order must correspond to DialogClass enum
- NULL, &wpComment, &wpTags, NULL, NULL, &wpConsole, &wpDualBoard, &wpMoveHistory, &wpGameList, &wpEngineOutput, &wpEvalGraph,
+ NULL, &wpComment, &wpTags, &wpTextMenu, NULL, &wpConsole, &wpDualBoard, &wpMoveHistory, &wpGameList, &wpEngineOutput, &wpEvalGraph,
NULL, NULL, NULL, NULL, &wpMain
};
void
SendText (int n)
{
-#ifdef TODO_GTK
char *p = (char*) textOptions[n].choice;
+#ifdef TODO_GTK
if(strstr(p, "$name")) {
XtGetSelectionValue(menuBarWidget,
XA_PRIMARY, XA_STRING,
(XtPointer) (intptr_t) n, /* client_data passed to PastePositionCB */
CurrentTime
);
- } else SendString(p);
+ } else
#endif
+ SendString(p);
}
void
}
void
-HardSetFocus (Option *opt)
+HardSetFocus (Option *opt, DialogClass dlg)
{
- FocusOnWidget(opt, 0); // second arg not used in GDK
+ FocusOnWidget(opt, dlg);
}