int handle_motion_notify(void *ignored, xcb_connection_t *conn,
xcb_motion_notify_event_t *event);
-#if 0
/**
* Called when the keyboard mapping changes (for example by using Xmodmap),
* we need to update our key bindings then (re-translate symbols).
*/
int handle_mapping_notify(void *ignored, xcb_connection_t *conn,
xcb_mapping_notify_event_t *event);
+#if 0
/**
* Checks if the button press was on a stack window, handles focus setting and
return 1;
}
-#if 0
/*
* Called when the keyboard mapping changes (for example by using Xmodmap),
* we need to update our key bindings then (re-translate symbols).
*
*/
int handle_mapping_notify(void *ignored, xcb_connection_t *conn, xcb_mapping_notify_event_t *event) {
- if (event->request != XCB_MAPPING_KEYBOARD &&
- event->request != XCB_MAPPING_MODIFIER)
- return 0;
+ if (event->request != XCB_MAPPING_KEYBOARD &&
+ event->request != XCB_MAPPING_MODIFIER)
+ return 0;
- DLOG("Received mapping_notify for keyboard or modifier mapping, re-grabbing keys\n");
- xcb_refresh_keyboard_mapping(keysyms, event);
+ DLOG("Received mapping_notify for keyboard or modifier mapping, re-grabbing keys\n");
+ xcb_refresh_keyboard_mapping(keysyms, event);
- xcb_get_numlock_mask(conn);
+ xcb_get_numlock_mask(conn);
- ungrab_all_keys(conn);
- translate_keysyms();
- grab_all_keys(conn, false);
+ ungrab_all_keys(conn);
+ translate_keysyms();
+ grab_all_keys(conn, false);
- return 0;
+ return 0;
}
-#endif
/*
* A new window appeared on the screen (=was mapped), so let’s manage it.
*
/* Watch WM_TRANSIENT_FOR property (to which client this popup window belongs) */
xcb_property_set_handler(&prophs, WM_TRANSIENT_FOR, UINT_MAX, handle_transient_for, NULL);
+ /* Mapping notify = keyboard mapping changed (Xmodmap), re-grab bindings */
+ xcb_event_set_mapping_notify_handler(&evenths, handle_mapping_notify, NULL);
+
/* Set up the atoms we support */
xcb_change_property(conn, XCB_PROP_MODE_REPLACE, root, atoms[_NET_SUPPORTED], ATOM, 32, 7, atoms);
/* Set up the window manager’s name */