summaryrefslogtreecommitdiff
path: root/openbox/event.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-01-11 21:19:58 -0500
committerDana Jansens <danakj@orodu.net>2008-01-11 21:19:58 -0500
commit405d9a3e431b01a221be65f41bccb6c80c43b0a4 (patch)
tree753ee1e167be50ba6d9d26cecf52bd47a737e29d /openbox/event.c
parentc2e495c720d93521bdb0e1bfd7e76584a1b329b7 (diff)
dont reparse the config file when the keyboard map changes. just rebind everything. yay for mika as inspiration
Diffstat (limited to 'openbox/event.c')
-rw-r--r--openbox/event.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/openbox/event.c b/openbox/event.c
index 6b0ecdd7..bc59d67e 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -639,9 +639,12 @@ static void event_process(const XEvent *ec, gpointer data)
else if (e->type == MapRequest)
client_manage(window);
else if (e->type == MappingNotify) {
- /* keyboard layout changes, reconfigure openbox. need to restart the
- modkeys system, but also to reload the key bindings. */
- ob_reconfigure();
+ /* keyboard layout changes for modifier mapping changes. reload the
+ modifier map, and rebind all the key bindings as appropriate */
+ ob_debug("Kepboard map changed. Reloading keyboard bindings.\n");
+ modkeys_shutdown(TRUE);
+ modkeys_startup(TRUE);
+ keyboard_rebind();
}
else if (e->type == ClientMessage) {
/* This is for _NET_WM_REQUEST_FRAME_EXTENTS messages. They come for