/[oroborus]/oroborus/src/keyboard.c
ViewVC logotype

Diff of /oroborus/src/keyboard.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by dreamind, Thu May 30 13:57:51 2002 UTC revision 1.3 by dreamind, Sat Jun 8 22:49:17 2002 UTC
# Line 21  Line 21 
21   */   */
22    
23  #include <X11/Xlib.h>  #include <X11/Xlib.h>
24    #include <X11/Xutil.h>
25    #include <X11/keysym.h>
26  #include <stdlib.h>  #include <stdlib.h>
27  #include <stdio.h>  #include <stdio.h>
28  #include <string.h>  #include <string.h>
# Line 74  grabKey (Display * dpy, MyKey * key, Win Line 76  grabKey (Display * dpy, MyKey * key, Win
76      {      {
77        XGrabKey (dpy, key->keycode, key->modifier, w, False, GrabModeAsync,        XGrabKey (dpy, key->keycode, key->modifier, w, False, GrabModeAsync,
78                  GrabModeAsync);                  GrabModeAsync);
79        XGrabKey (dpy, key->keycode, key->modifier | LockMask, w, False,        XGrabKey (dpy, key->keycode, key->modifier | NumLockMask, w, False,
80                  GrabModeAsync, GrabModeAsync);                  GrabModeAsync, GrabModeAsync);
81          XGrabKey (dpy, key->keycode, key->modifier | CapsLockMask, w, False,
82                    GrabModeAsync, GrabModeAsync);
83          XGrabKey (dpy, key->keycode, key->modifier | ScrollLockMask, w, False,
84                    GrabModeAsync, GrabModeAsync);
85          XGrabKey (dpy, key->keycode, key->modifier | NumLockMask | CapsLockMask,
86                    w, False, GrabModeAsync, GrabModeAsync);
87          XGrabKey (dpy, key->keycode,
88                    key->modifier | NumLockMask | ScrollLockMask, w, False,
89                    GrabModeAsync, GrabModeAsync);
90          XGrabKey (dpy, key->keycode,
91                    key->modifier | NumLockMask | CapsLockMask | ScrollLockMask,
92                    w, False, GrabModeAsync, GrabModeAsync);
93      }      }
94  }  }
95    
# Line 88  ungrabKeys (Display * dpy, Window w) Line 102  ungrabKeys (Display * dpy, Window w)
102    
103    XUngrabKey (dpy, AnyKey, AnyModifier, w);    XUngrabKey (dpy, AnyKey, AnyModifier, w);
104  }  }
105    
106    void
107    init_keyboard (Display *dpy)
108    {
109      XModifierKeymap *xmk = NULL;
110      KeyCode *map;
111      int m, k;
112    
113    #ifdef DEBUG
114      printf ("init_keyboard\n");
115    #endif
116    
117      xmk = XGetModifierMapping (dpy);
118      if (xmk)
119        {
120          map = xmk->modifiermap;
121          for (m = 0; m < 8; m++)
122            for (k = 0; k < xmk->max_keypermod; k++, map++)
123              {
124                if (*map == XKeysymToKeycode (dpy, XK_Num_Lock))
125                  NumLockMask = (1 << m);
126                if (*map == XKeysymToKeycode (dpy, XK_Caps_Lock))
127                  CapsLockMask = (1 << m);
128                if (*map == XKeysymToKeycode (dpy, XK_Scroll_Lock))
129                  ScrollLockMask = (1 << m);
130              }
131          XFreeModifiermap (xmk);
132        }
133    }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26