Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-pwkl-6.1.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-pwkl-6.1.diff (1514B)
---
1 diff --git a/dwm.c b/dwm.c
2 index 0362114..8807f54 100644
3 --- a/dwm.c
4 +++ b/dwm.c
5 @@ -36,6 +36,7 @@
6 #include <X11/Xlib.h>
7 #include <X11/Xproto.h>
8 #include <X11/Xutil.h>
9 +#include <X11/XKBlib.h>
10 #ifdef XINERAMA
11 #include <X11/extensions/Xinerama.h>
12 #endif /* XINERAMA */
13 @@ -97,6 +98,7 @@ struct Client {
14 Client *snext;
15 Monitor *mon;
16 Window win;
17 + unsigned char kbdgrp;
18 };
19
20 typedef struct {
21 @@ -804,6 +806,7 @@ focus(Client *c)
22 selmon = c->mon;
23 if (c->isurgent)
24 clearurgent(c);
25 + XkbLockGroup(dpy, XkbUseCoreKbd, c->kbdgrp);
26 detachstack(c);
27 attachstack(c);
28 grabbuttons(c, 1);
29 @@ -1035,6 +1038,7 @@ manage(Window w, XWindowAttributes *wa)
30 Client *c, *t = NULL;
31 Window trans = None;
32 XWindowChanges wc;
33 + XkbStateRec kbd_state;
34
35 c = ecalloc(1, sizeof(Client));
36 c->win = w;
37 @@ -1085,6 +1089,8 @@ manage(Window w, XWindowAttributes *wa)
38 if (c->mon == selmon)
39 unfocus(selmon->sel, 0);
40 c->mon->sel = c;
41 + XkbGetState(dpy, XkbUseCoreKbd, &kbd_state);
42 + c->kbdgrp = kbd_state.group;
43 arrange(c->mon);
44 XMapWindow(dpy, c->win);
45 focus(NULL);
46 @@ -1742,6 +1748,7 @@ toggleview(const Arg *arg)
47 void
48 unfocus(Client *c, int setfocus)
49 {
50 + XkbStateRec kbd_state;
51 if (!c)
52 return;
53 grabbuttons(c, 0);
54 @@ -1750,6 +1757,8 @@ unfocus(Client *c, int setfocus)
55 XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentT…
56 XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
57 }
58 + XkbGetState(dpy, XkbUseCoreKbd, &kbd_state);
59 + c->kbdgrp = kbd_state.group;
60 }
61
62 void
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.