Add BarBegin, BarEnd options
[xboard.git] / xboard.c
index f376da3..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
@@ -2097,23 +2082,6 @@ QuitWrapper (Widget w, XEvent *event, String *prms, Cardinal *nprms)
 }
 #endif
 
-int
-ShiftKeys ()
-{   // bassic primitive for determining if modifier keys are pressed
-    int i,j,  k=0;
-#ifdef TODO_GTK
-    long int codes[] = { XK_Meta_L, XK_Meta_R, XK_Control_L, XK_Control_R, XK_Shift_L, XK_Shift_R };
-    char keys[32];
-    XQueryKeymap(xDisplay,keys);
-    for(i=0; i<6; i++) {
-       k <<= 1;
-       j = XKeysymToKeycode(xDisplay, codes[i]);
-       k += ( (keys[j>>3]&1<<(j&7)) != 0 );
-    }
-#endif
-    return k;
-}
-
 void MoveTypeInProc(eventkey)
     GdkEventKey  *eventkey;
 {