X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=ed0e0965b733d41b4b55b726c758f9629d0a46e7;hb=12af0aedf2da4f360954cfaaeaf77234b36e4858;hp=b5e15a3c894fdaf6cdf8ec392040e671bdbd98fc;hpb=cb49f853c9b62c4403eb562d39f52c51da292c4f;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index b5e15a3c..ed0e0965 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -8,6 +8,8 @@ #include "screen.h" #include "frame.h" #include "menu.h" +#include "keyboard.h" +#include "mouse.h" #include "framerender.h" #include "focus.h" #include "moveresize.h" @@ -541,13 +543,23 @@ static void event_process(XEvent *e) } /* user input (action-bound) events */ - /* if (e->type == ButtonPress || e->type == ButtonRelease || - e->type == MotionNotify) - mouse_event(e, client); - else if (e->type == KeyPress || e->type == KeyRelease) - ; - */ + e->type == MotionNotify || e->type == KeyPress || + e->type == KeyRelease) + { + ObFrameContext context; + + context = frame_context(client, e->xany.window); + + if (!keyboard_process_interactive_grab(e, &client, &context)) { + + if (e->type == ButtonPress || e->type == ButtonRelease || + e->type == MotionNotify) + mouse_event(client, context, e); + else if (e->type == KeyPress) + keyboard_event(client, e); + } + } /* dispatch the event to registered handlers */ dispatch_x(e, client); @@ -927,7 +939,7 @@ static void event_handle_client(ObClient *client, XEvent *e) client_close(client); } else if (msgtype == prop_atoms.net_active_window) { ob_debug("net_active_window for 0x%lx\n", client->window); - client_activate(client); + client_activate(client, FALSE); } else if (msgtype == prop_atoms.net_wm_moveresize) { ob_debug("net_wm_moveresize for 0x%lx\n", client->window); if ((Atom)e->xclient.data.l[2] ==