- Window win;
-
- // pick a window
- switch (e.type) {
- case UnmapNotify:
- win = e.xunmap.window;
- break;
- case DestroyNotify:
- win = e.xdestroywindow.window;
- break;
- case ConfigureRequest:
- win = e.xconfigurerequest.window;
- break;
- default:
- win = e.xany.window;
- }
-
- // grab the lasttime and hack up the modifiers
- switch (e.type) {
- case ButtonPress:
- case ButtonRelease:
- _lasttime = e.xbutton.time;
- e.xbutton.state &= ~(LockMask | OBDisplay::numLockMask() |
- OBDisplay::scrollLockMask());
- break;
- case KeyPress:
- e.xkey.state &= ~(LockMask | OBDisplay::numLockMask() |
- OBDisplay::scrollLockMask());
- break;
- case MotionNotify:
- _lasttime = e.xmotion.time;
- e.xmotion.state &= ~(LockMask | OBDisplay::numLockMask() |
- OBDisplay::scrollLockMask());
- break;
- case PropertyNotify:
- _lasttime = e.xproperty.time;
- break;
- case EnterNotify:
- case LeaveNotify:
- _lasttime = e.xcrossing.time;
- break;
- }
-
- // madly compress all focus events
- if (e.type == FocusIn) {
- // any other types are not ones we're interested in
- if (e.xfocus.detail == NotifyNonlinear) {
- focus = e.xfocus.window;
- unfocus = None;
- //printf("FocusIn focus=%lx unfocus=%lx\n", focus, unfocus);
- }
- } else if (e.type == FocusOut) {
- // any other types are not ones we're interested in
- if (e.xfocus.detail == NotifyNonlinear) {
- unfocus = e.xfocus.window;
- focus = None;
- //printf("FocusOut focus=%lx unfocus=%lx\n", focus, unfocus);
- }
- /*
- // madly compress all crossing events
- } else if (e.type == EnterNotify) {
- // any other types are not ones we're interested in
- if (e.xcrossing.mode == NotifyNormal) {
- // any other types are not ones we're interested in
- enter = e.xcrossing.window;
- enter_root = e.xcrossing.root;
- //printf("Enter enter=%lx leave=%lx\n", enter, leave);