From 6e0abca515f58cb87c0c0310bc98ed7d84536344 Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Sat, 17 Sep 2011 00:05:36 +0000 Subject: [PATCH] Fix root window mask, change modkey --- sys-x11.c | 11 +++++++---- wm-wmii.c | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/sys-x11.c b/sys-x11.c index 08e80e9..7ba9b69 100644 --- a/sys-x11.c +++ b/sys-x11.c @@ -317,16 +317,19 @@ void sys_focus(win_t *win) void sys_watch(win_t *win, Key_t key, mod_t mod) { //printf("sys_watch: %p - %x %hhx\n", win, key, mod); + XWindowAttributes attr; + XGetWindowAttributes(win->sys->dpy, win->sys->xid, &attr); + long mask = attr.your_event_mask; if (key_mouse0 <= key && key <= key_mouse7) XGrabButton(win->sys->dpy, btn2x(key), mod2x(mod), win->sys->xid, True, mod.up ? ButtonReleaseMask : ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None); else if (key == key_enter) - XSelectInput(win->sys->dpy, win->sys->xid, EnterWindowMask); + XSelectInput(win->sys->dpy, win->sys->xid, EnterWindowMask|mask); else if (key == key_leave) - XSelectInput(win->sys->dpy, win->sys->xid, LeaveWindowMask); + XSelectInput(win->sys->dpy, win->sys->xid, LeaveWindowMask|mask); else if (key == key_focus || key == key_unfocus) - XSelectInput(win->sys->dpy, win->sys->xid, FocusChangeMask); + XSelectInput(win->sys->dpy, win->sys->xid, FocusChangeMask|mask); else XGrabKey(win->sys->dpy, XKeysymToKeycode(win->sys->dpy, key2x(key)), mod2x(mod), win->sys->xid, True, GrabModeAsync, GrabModeAsync); @@ -343,7 +346,7 @@ win_t *sys_init(void) atoms[wm_proto] = XInternAtom(dpy, "WM_PROTOCOLS", False); atoms[wm_focus] = XInternAtom(dpy, "WM_TAKE_FOCUS", False); XSelectInput(dpy, xid, SubstructureRedirectMask|SubstructureNotifyMask); - //XSetInputFocus(dpy, None, RevertToNone, CurrentTime); + XSetInputFocus(dpy, None, RevertToNone, CurrentTime); return win_find(dpy, xid, 1); } diff --git a/wm-wmii.c b/wm-wmii.c index 88789e6..2ead22c 100644 --- a/wm-wmii.c +++ b/wm-wmii.c @@ -5,7 +5,7 @@ #include "sys.h" #include "wm.h" -#define MODKEY ctrl +#define MODKEY alt /* Loca types */ struct win_wm { -- 2.43.2