Add type-in event to board for popping up box
authorH.G. Muller <h.g.muller@hccnet.nl>
Thu, 18 Oct 2012 11:40:55 +0000 (13:40 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Tue, 6 Nov 2012 13:15:18 +0000 (14:15 +0100)
xboard.c

index 5c42dba..68dd7ca 100644 (file)
--- a/xboard.c
+++ b/xboard.c
@@ -197,6 +197,7 @@ char *FindFont P((char *pattern, int targetPxlSize));
 #endif
 void DelayedDrag P((void));
 void ICSInputBoxPopUp P((void));
+gboolean KeyPressProc P((GtkWindow *window, GdkEventKey *eventkey, gpointer data));
 #ifdef TODO_GTK
 static void MoveTypeInProc P((Widget widget, caddr_t unused, XEvent *event));
 void HandlePV P((Widget w, XEvent * event,
@@ -1359,6 +1360,7 @@ main (int argc, char **argv)
     XtAddEventHandler(shellWidget, StructureNotifyMask, False,
                      (XtEventHandler) EventProc, NULL);
 #endif
+    g_signal_connect(shells[BoardWindow], "key-press-event", G_CALLBACK(KeyPressProc), NULL);
 
     /* [AS] Restore layout */
     if( wpMoveHistory.visible ) {
@@ -1633,7 +1635,6 @@ SetMenuEnables (Enables *enab)
   }
 }
 
-#ifdef TODO_GTK
 gboolean KeyPressProc(window, eventkey, data)
      GtkWindow *window;
      GdkEventKey  *eventkey;
@@ -1642,25 +1643,7 @@ gboolean KeyPressProc(window, eventkey, data)
 
     MoveTypeInProc(eventkey); // pop up for typed in moves
 
-    // handle shift+<number> cases
-    if (eventkey->state & GDK_SHIFT_MASK) {
-        guint keyval;
-
-        gdk_keymap_translate_keyboard_state(NULL, eventkey->hardware_keycode,
-                                           0, eventkey->group,
-                                           &keyval, NULL, NULL, NULL);
-        switch(keyval) {
-            case GDK_1:
-                AskQuestionEvent("Direct command", "Send to chess program:", "", "1");
-                break;
-            case GDK_2:
-                AskQuestionEvent("Direct command", "Send to second chess program:", "", "2");
-                break;
-            default:
-                break;
-        }
-    }
-
+#ifdef TODO_GTK
     /* check for other key values */
     switch(eventkey->keyval) {
         case GDK_question:
@@ -1669,8 +1652,10 @@ gboolean KeyPressProc(window, eventkey, data)
         default:
          break;
     }
+#endif
     return False;
 }
+#ifdef TODO_GTK
 void
 KeyBindingProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
 {   // [HGM] new method of key binding: specify MenuItem(FlipView) in stead of FlipViewProc in translation string