]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
add actions for key/mouse bindings etc
[chaz/openbox] / openbox / event.c
index 0cf9cf1475fd52c49770595aa543b6528706177c..cb2ed093bce4f7584770d85ce06b9207647200b1 100644 (file)
@@ -7,12 +7,10 @@
 #include "engine.h"
 #include "focus.h"
 #include "stacking.h"
-#include "keyboard.h"
-#include "pointer.h"
-#include "hooks.h"
 #include "extensions.h"
 #include "timer.h"
 #include "engine.h"
+#include "dispatch.h"
 
 #include <X11/Xlib.h>
 #include <X11/keysym.h>
@@ -255,6 +253,7 @@ void event_process(XEvent *e)
 
     client = g_hash_table_lookup(client_map, (gpointer)window);
 
+    /* deal with it in the kernel */
     if (client) {
        event_handle_client(client, e);
     } else if (window == ob_root)
@@ -282,45 +281,8 @@ void event_process(XEvent *e)
        xerror_set_ignore(FALSE);
     }
 
-    /* dispatch Crossing, Pointer and Key events to the hooks */
-    switch(e->type) {
-    case EnterNotify:
-        if (client != NULL) engine_mouse_enter(client->frame, window);
-       HOOKFIRECLIENT(pointerenter, client);
-       break;
-    case LeaveNotify:
-        if (client != NULL) engine_mouse_leave(client->frame, window);
-       HOOKFIRECLIENT(pointerleave, client);
-       break;
-    case ButtonPress:
-        if (client != NULL) 
-            engine_mouse_press(client->frame, window,
-                               e->xbutton.x, e->xbutton.y);
-       pointer_event(e, client);
-        break;
-    case ButtonRelease:
-        if (client != NULL)
-            engine_mouse_release(client->frame, window,
-                                 e->xbutton.x, e->xbutton.y);
-       pointer_event(e, client);
-        break;
-    case MotionNotify:
-       pointer_event(e, client);
-       break;
-    case KeyPress:     
-    case KeyRelease:
-       keyboard_event(&e->xkey);
-       break;
-    default:
-       /* XKB events */
-       if (e->type == extensions_xkb_event_basep) {
-           switch (((XkbAnyEvent*)&e)->xkb_type) {
-           case XkbBellNotify:
-               HOOKFIRECLIENT(bell, client);
-               break;
-           }
-       }
-    }
+    /* dispatch the event to registered handlers */
+    dispatch_x(e, client);
 }
 
 static void event_handle_root(XEvent *e)
@@ -494,7 +456,7 @@ static void event_handle_client(Client *client, XEvent *e)
        /* we shouldn't be able to get this unless we're iconic */
        g_assert(client->iconic);
 
-       HOOKFIRECLIENT(requestactivate, client);
+       /*HOOKFIRECLIENT(requestactivate, client);XXX*/
        break;
     case ClientMessage:
        /* validate cuz we query stuff off the client here */
@@ -554,7 +516,7 @@ static void event_handle_client(Client *client, XEvent *e)
                /* if its not visible for other reasons, then don't mess
                   with it */
                return;
-           HOOKFIRECLIENT(requestactivate, client);
+           /*HOOKFIRECLIENT(requestactivate, client);XXX*/
        }
        break;
     case PropertyNotify:
This page took 0.025669 seconds and 4 git commands to generate.