]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
since the internal windows are in window_map now, it's possible we'll get them back...
[chaz/openbox] / openbox / event.c
index 6b0ecdd7b04304ff88ec5bc6d4e6dbac46625656..04ecf3837e7f26108b3f43afcb8311b1befd571f 100644 (file)
@@ -475,10 +475,12 @@ static void event_process(const XEvent *ec, gpointer data)
             client = WINDOW_AS_CLIENT(obwin);
             break;
         case Window_Menu:
-        case Window_Internal:
             /* not to be used for events */
             g_assert_not_reached();
             break;
+        case Window_Internal:
+            /* we don't do anything with events directly on these windows */
+            break;
         }
     }
 
@@ -639,9 +641,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
This page took 0.023658 seconds and 4 git commands to generate.