dwm-pwkl-5.9.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
dwm-pwkl-5.9.diff (1384B)
---
1 diff -r 406003e3a01f dwm.c
2 --- a/dwm.c Mon Sep 27 07:53:44 2010 +0000
3 +++ b/dwm.c Wed Oct 13 21:16:04 2010 +0300
4 @@ -36,6 +36,7 @@
5 #include <X11/Xlib.h>
6 #include <X11/Xproto.h>
7 #include <X11/Xutil.h>
8 +#include <X11/XKBlib.h>
9 #ifdef XINERAMA
10 #include <X11/extensions/Xinerama.h>
11 #endif /* XINERAMA */
12 @@ -93,6 +94,7 @@
13 Client *snext;
14 Monitor *mon;
15 Window win;
16 + unsigned char kbdgrp;
17 };
18
19 typedef struct {
20 @@ -821,6 +823,7 @@
21 selmon = c->mon;
22 if(c->isurgent)
23 clearurgent(c);
24 + XkbLockGroup (dpy, XkbUseCoreKbd, c->kbdgrp);
25 detachstack(c);
26 attachstack(c);
27 grabbuttons(c, True);
28 @@ -1092,6 +1095,7 @@
29 Client *c, *t = NULL;
30 Window trans = None;
31 XWindowChanges wc;
32 + XkbStateRec kbd_state;
33
34 if(!(c = malloc(sizeof(Client))))
35 die("fatal: could not malloc() %u bytes\n", sizeof(Client));
36 @@ -1146,6 +1150,8 @@
37 XMapWindow(dpy, c->win);
38 setclientstate(c, NormalState);
39 arrange(c->mon);
40 + XkbGetState (dpy, XkbUseCoreKbd, &kbd_state);
41 + c->kbdgrp = kbd_state.group;
42 }
43
44 void
45 @@ -1700,12 +1706,16 @@
46
47 void
48 unfocus(Client *c, Bool setfocus) {
49 + XkbStateRec kbd_state;
50 +
51 if(!c)
52 return;
53 grabbuttons(c, False);
54 XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
55 if(setfocus)
56 XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
57 + XkbGetState (dpy, XkbUseCoreKbd, &kbd_state);
58 + c->kbdgrp = kbd_state.group;
59 }
60
61 void