Introduction
Introduction Statistics Contact Development Disclaimer Help
tremoved NUMLOCKMASK, added dynamically calculated numlockmask instead - dwm - …
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit ee31e38dc75832a66cb0fc01bcf2f419ac96a20b
parent 442334641e4124d8c32387287d431a83761ff916
Author: Anselm R.Garbe <[email protected]>
Date: Mon, 14 Aug 2006 19:18:02 +0200
removed NUMLOCKMASK, added dynamically calculated numlockmask instead
Diffstat:
M client.c | 12 ++++++------
M config.arg.h | 1 -
M config.default.h | 1 -
M dwm.h | 2 +-
M event.c | 6 +++---
M main.c | 26 +++++++++++++++++++-------
6 files changed, 29 insertions(+), 19 deletions(-)
---
diff --git a/client.c b/client.c
t@@ -228,27 +228,27 @@ manage(Window w, XWindowAttributes *wa)
GrabModeAsync, GrabModeSync, None, None);
XGrabButton(dpy, Button1, MODKEY | LockMask, c->win, False, BUTTONMASK,
GrabModeAsync, GrabModeSync, None, None);
- XGrabButton(dpy, Button1, MODKEY | NUMLOCKMASK, c->win, False, BUTTONM…
+ XGrabButton(dpy, Button1, MODKEY | numlockmask, c->win, False, BUTTONM…
GrabModeAsync, GrabModeSync, None, None);
- XGrabButton(dpy, Button1, MODKEY | NUMLOCKMASK | LockMask, c->win, Fal…
+ XGrabButton(dpy, Button1, MODKEY | numlockmask | LockMask, c->win, Fal…
GrabModeAsync, GrabModeSync, None, None);
XGrabButton(dpy, Button2, MODKEY, c->win, False, BUTTONMASK,
GrabModeAsync, GrabModeSync, None, None);
XGrabButton(dpy, Button2, MODKEY | LockMask, c->win, False, BUTTONMASK,
GrabModeAsync, GrabModeSync, None, None);
- XGrabButton(dpy, Button2, MODKEY | NUMLOCKMASK, c->win, False, BUTTONM…
+ XGrabButton(dpy, Button2, MODKEY | numlockmask, c->win, False, BUTTONM…
GrabModeAsync, GrabModeSync, None, None);
- XGrabButton(dpy, Button2, MODKEY | NUMLOCKMASK | LockMask, c->win, Fal…
+ XGrabButton(dpy, Button2, MODKEY | numlockmask | LockMask, c->win, Fal…
GrabModeAsync, GrabModeSync, None, None);
XGrabButton(dpy, Button3, MODKEY, c->win, False, BUTTONMASK,
GrabModeAsync, GrabModeSync, None, None);
XGrabButton(dpy, Button3, MODKEY | LockMask, c->win, False, BUTTONMASK,
GrabModeAsync, GrabModeSync, None, None);
- XGrabButton(dpy, Button3, MODKEY | NUMLOCKMASK, c->win, False, BUTTONM…
+ XGrabButton(dpy, Button3, MODKEY | numlockmask, c->win, False, BUTTONM…
GrabModeAsync, GrabModeSync, None, None);
- XGrabButton(dpy, Button3, MODKEY | NUMLOCKMASK | LockMask, c->win, Fal…
+ XGrabButton(dpy, Button3, MODKEY | numlockmask | LockMask, c->win, Fal…
GrabModeAsync, GrabModeSync, None, None);
settags(c);
diff --git a/config.arg.h b/config.arg.h
t@@ -13,7 +13,6 @@ const char *tags[] = { "work", "net", "fnord", NULL };
#define FGCOLOR "#eeeeee"
#define BORDERCOLOR "#3f484d"
#define MODKEY Mod1Mask
-#define NUMLOCKMASK Mod2Mask
#define MASTERW 60 /* percent */
#define KEYS \
diff --git a/config.default.h b/config.default.h
t@@ -13,7 +13,6 @@ const char *tags[] = { "0", "1", "2", "3", "4", NULL };
#define FGCOLOR "#eeeeee"
#define BORDERCOLOR "#9999CC"
#define MODKEY Mod1Mask
-#define NUMLOCKMASK Mod2Mask
#define MASTERW 60 /* percent */
#define KEYS \
diff --git a/dwm.h b/dwm.h
t@@ -70,7 +70,7 @@ struct Client {
extern const char *tags[];
extern char stext[1024];
extern int screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
-extern unsigned int ntags;
+extern unsigned int ntags, numlockmask;
extern void (*handler[LASTEvent])(XEvent *);
extern void (*arrange)(Arg *);
extern Atom wmatom[WMLast], netatom[NetLast];
diff --git a/event.c b/event.c
t@@ -18,7 +18,7 @@ typedef struct {
KEYS
-#define CLEANMASK(mask) (mask & ~(NUMLOCKMASK | LockMask))
+#define CLEANMASK(mask) (mask & ~(numlockmask | LockMask))
static void
movemouse(Client *c)
t@@ -378,9 +378,9 @@ grabkeys()
GrabModeAsync, GrabModeAsync);
XGrabKey(dpy, code, key[i].mod | LockMask, root, True,
GrabModeAsync, GrabModeAsync);
- XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True,
+ XGrabKey(dpy, code, key[i].mod | numlockmask, root, True,
GrabModeAsync, GrabModeAsync);
- XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root,…
+ XGrabKey(dpy, code, key[i].mod | numlockmask | LockMask, root,…
GrabModeAsync, GrabModeAsync);
}
}
diff --git a/main.c b/main.c
t@@ -11,6 +11,7 @@
#include <unistd.h>
#include <sys/select.h>
#include <X11/cursorfont.h>
+#include <X11/keysym.h>
#include <X11/Xatom.h>
#include <X11/Xproto.h>
t@@ -85,7 +86,7 @@ xerrorstart(Display *dsply, XErrorEvent *ee)
char stext[1024];
Bool *seltag;
int screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
-unsigned int ntags;
+unsigned int ntags, numlockmask;
Atom wmatom[WMLast], netatom[NetLast];
Bool running = True;
Bool issel = True;
t@@ -162,12 +163,13 @@ xerror(Display *dpy, XErrorEvent *ee)
int
main(int argc, char *argv[])
{
- int i, xfd;
+ int i, j, xfd;
unsigned int mask;
fd_set rd;
Bool readin = True;
Window w;
XEvent ev;
+ XModifierKeymap *modmap;
XSetWindowAttributes wa;
if(argc == 2 && !strncmp("-v", argv[1], 3)) {
t@@ -211,7 +213,16 @@ main(int argc, char *argv[])
cursor[CurResize] = XCreateFontCursor(dpy, XC_sizing);
cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur);
- wa.event_mask = SubstructureRedirectMask | EnterWindowMask | LeaveWind…
+ modmap = XGetModifierMapping(dpy);
+ for (i = 0; i < 8; i++) {
+ for (j = 0; j < modmap->max_keypermod; j++) {
+ if(modmap->modifiermap[i * modmap->max_keypermod + j] …
+ numlockmask = (1 << i);
+ }
+ }
+ XFree(modmap);
+
+ wa.event_mask = SubstructureRedirectMask | SubstructureNotifyMask | En…
wa.cursor = cursor[CurNormal];
XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa);
t@@ -233,13 +244,12 @@ main(int argc, char *argv[])
sh = DisplayHeight(dpy, screen);
mw = (sw * MASTERW) / 100;
- wa.override_redirect = 1;
- wa.background_pixmap = ParentRelative;
- wa.event_mask = ButtonPressMask | ExposureMask;
-
bx = by = 0;
bw = sw;
dc.h = bh = dc.font.height + 4;
+ wa.override_redirect = 1;
+ wa.background_pixmap = ParentRelative;
+ wa.event_mask = ButtonPressMask | ExposureMask;
barwin = XCreateWindow(dpy, root, bx, by, bw, bh, 0, DefaultDepth(dpy,…
CopyFromParent, DefaultVisual(dpy, screen),
CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
t@@ -258,6 +268,7 @@ main(int argc, char *argv[])
/* main event loop, also reads status text from stdin */
XSync(dpy, False);
+ goto XLoop;
while(running) {
FD_ZERO(&rd);
if(readin)
t@@ -278,6 +289,7 @@ main(int argc, char *argv[])
drawstatus();
}
if(FD_ISSET(xfd, &rd)) {
+XLoop:
while(XPending(dpy)) {
XNextEvent(dpy, &ev);
if(handler[ev.type])
You are viewing proxied material from mx1.adamsgaard.dk. 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.