]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
note 64bit fixes in changelog
[chaz/openbox] / openbox / event.c
index 16951f75792a5b131450a834c015c2da635e75c3..f2c8cf45489df34e833267bb2610ac7dd4705f19 100644 (file)
@@ -51,6 +51,9 @@
 #ifdef HAVE_SIGNAL_H
 #  include <signal.h>
 #endif
+#ifdef XKB
+#  include <X11/XKBlib.h>
+#endif
 
 #ifdef USE_SM
 #include <X11/ICE/ICElib.h>
@@ -259,6 +262,9 @@ static void event_set_lasttime(XEvent *e)
 
 static void event_hack_mods(XEvent *e)
 {
+#ifdef XKB
+    XkbStateRec xkb_state;
+#endif
     KeyCode *kp;
     gint i, k;
 
@@ -274,6 +280,12 @@ static void event_hack_mods(XEvent *e)
         STRIP_MODS(e->xkey.state);
         /* remove from the state the mask of the modifier being released, if
            it is a modifier key being released (this is a little ugly..) */
+#ifdef XKB
+        if (XkbGetState(ob_display, XkbUseCoreKbd, &xkb_state) == Success) {
+            e->xkey.state = xkb_state.compat_state;
+            break;
+        }
+#endif
         kp = modmap->modifiermap;
         for (i = 0; i < mask_table_size; ++i) {
             for (k = 0; k < modmap->max_keypermod; ++k) {
@@ -1135,9 +1147,9 @@ static void event_handle_dock(ObDock *s, XEvent *e)
     switch (e->type) {
     case ButtonPress:
         if (e->xbutton.button == 1)
-            stacking_raise(DOCK_AS_WINDOW(s));
+            stacking_raise(DOCK_AS_WINDOW(s), FALSE);
         else if (e->xbutton.button == 2)
-            stacking_lower(DOCK_AS_WINDOW(s));
+            stacking_lower(DOCK_AS_WINDOW(s), FALSE);
         break;
     case EnterNotify:
         dock_hide(FALSE);
This page took 0.023912 seconds and 4 git commands to generate.