]> git.sur5r.net Git - i3/i3/blobdiff - src/handlers.c
first step of the big refactoring ("tree" branch).
[i3/i3] / src / handlers.c
index 624c34305d5bd78caa9bcdbe89ab6291ad0e5095..c679da813f2e439a54774db60946e3e8b4db209a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * vim:ts=8:expandtab
+ * vim:ts=4:sw=4:expandtab
  *
  * i3 - an improved dynamic tiling window manager
  *
@@ -8,38 +8,14 @@
  * See file LICENSE for license information.
  *
  */
-#include <stdio.h>
-#include <assert.h>
-#include <string.h>
-#include <stdlib.h>
 #include <time.h>
 
-#include <xcb/xcb.h>
 #include <xcb/xcb_atom.h>
-#include <xcb/xcb_icccm.h>
 #include <xcb/randr.h>
 
 #include <X11/XKBlib.h>
 
-#include "i3.h"
-#include "debug.h"
-#include "table.h"
-#include "layout.h"
-#include "commands.h"
-#include "data.h"
-#include "xcb.h"
-#include "util.h"
-#include "randr.h"
-#include "config.h"
-#include "queue.h"
-#include "resize.h"
-#include "client.h"
-#include "manage.h"
-#include "floating.h"
-#include "workspace.h"
-#include "log.h"
-#include "container.h"
-#include "ipc.h"
+#include "all.h"
 
 /* After mapping/unmapping windows, a notify event is generated. However, we don’t want it,
    since it’d trigger an infinite loop of switching between the different windows when
@@ -88,42 +64,44 @@ static bool event_is_ignored(const int sequence) {
  *
  */
 int handle_key_press(void *ignored, xcb_connection_t *conn, xcb_key_press_event_t *event) {
-        DLOG("Keypress %d, state raw = %d\n", event->detail, event->state);
-
-        /* Remove the numlock bit, all other bits are modifiers we can bind to */
-        uint16_t state_filtered = event->state & ~(xcb_numlock_mask | XCB_MOD_MASK_LOCK);
-        DLOG("(removed numlock, state = %d)\n", state_filtered);
-        /* Only use the lower 8 bits of the state (modifier masks) so that mouse
-         * button masks are filtered out */
-        state_filtered &= 0xFF;
-        DLOG("(removed upper 8 bits, state = %d)\n", state_filtered);
-
-        if (xkb_current_group == XkbGroup2Index)
-                state_filtered |= BIND_MODE_SWITCH;
-
-        DLOG("(checked mode_switch, state %d)\n", state_filtered);
-
-        /* Find the binding */
-        Binding *bind = get_binding(state_filtered, event->detail);
-
-        /* No match? Then the user has Mode_switch enabled but does not have a
-         * specific keybinding. Fall back to the default keybindings (without
-         * Mode_switch). Makes it much more convenient for users of a hybrid
-         * layout (like us, ru). */
-        if (bind == NULL) {
-                state_filtered &= ~(BIND_MODE_SWITCH);
-                DLOG("no match, new state_filtered = %d\n", state_filtered);
-                if ((bind = get_binding(state_filtered, event->detail)) == NULL) {
-                        ELOG("Could not lookup key binding (modifiers %d, keycode %d)\n",
-                             state_filtered, event->detail);
-                        return 1;
-                }
+    DLOG("Keypress %d, state raw = %d\n", event->detail, event->state);
+
+    /* Remove the numlock bit, all other bits are modifiers we can bind to */
+    uint16_t state_filtered = event->state & ~(xcb_numlock_mask | XCB_MOD_MASK_LOCK);
+    DLOG("(removed numlock, state = %d)\n", state_filtered);
+    /* Only use the lower 8 bits of the state (modifier masks) so that mouse
+     * button masks are filtered out */
+    state_filtered &= 0xFF;
+    DLOG("(removed upper 8 bits, state = %d)\n", state_filtered);
+
+    if (xkb_current_group == XkbGroup2Index)
+        state_filtered |= BIND_MODE_SWITCH;
+
+    DLOG("(checked mode_switch, state %d)\n", state_filtered);
+
+    /* Find the binding */
+    Binding *bind = get_binding(state_filtered, event->detail);
+
+    /* No match? Then the user has Mode_switch enabled but does not have a
+     * specific keybinding. Fall back to the default keybindings (without
+     * Mode_switch). Makes it much more convenient for users of a hybrid
+     * layout (like us, ru). */
+    if (bind == NULL) {
+        state_filtered &= ~(BIND_MODE_SWITCH);
+        DLOG("no match, new state_filtered = %d\n", state_filtered);
+        if ((bind = get_binding(state_filtered, event->detail)) == NULL) {
+            ELOG("Could not lookup key binding (modifiers %d, keycode %d)\n",
+                 state_filtered, event->detail);
+            return 1;
         }
+    }
 
-        parse_command(conn, bind->command);
-        return 1;
+    parse_command(bind->command);
+    return 1;
 }
 
+#if 0
+
 /*
  * Called with coordinates of an enter_notify event or motion_notify event
  * to check if the user crossed virtual screen boundaries and adjust the
@@ -1076,3 +1054,4 @@ int handle_clientleader_change(void *data, xcb_connection_t *conn, uint8_t state
 
         return 1;
 }
+#endif