summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--obt/mainloop.c3
-rw-r--r--openbox/event.c1
2 files changed, 3 insertions, 1 deletions
diff --git a/obt/mainloop.c b/obt/mainloop.c
index bf866aec..ebc9e96a 100644
--- a/obt/mainloop.c
+++ b/obt/mainloop.c
@@ -300,6 +300,9 @@ void obt_main_loop_run(ObtMainLoop *loop)
do {
XNextEvent(loop->display, &e);
+ if (e.type == MappingNotify)
+ XRefreshKeyboardMapping(&e.xmapping);
+
for (it = loop->x_handlers; it; it = g_slist_next(it)) {
ObtMainLoopXHandlerType *h = it->data;
h->func(&e, h->data);
diff --git a/openbox/event.c b/openbox/event.c
index 13fd3114..44a90f9b 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -638,7 +638,6 @@ static void event_process(const XEvent *ec, gpointer data)
modifier map, and rebind all the key bindings as appropriate */
ob_debug("Keyboard map changed. Reloading keyboard bindings.");
ob_set_state(OB_STATE_RECONFIGURING);
- XRefreshKeyboardMapping(&e->xmapping);
obt_keyboard_reload();
keyboard_rebind();
ob_set_state(OB_STATE_RUNNING);