From 75b07a2bb3b98d581b39d3991cf1e9068452264a Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 17 Mar 2003 20:16:32 +0000 Subject: all events are dispatched --- openbox/dispatch.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'openbox/dispatch.c') diff --git a/openbox/dispatch.c b/openbox/dispatch.c index c710dec7..f65a723a 100644 --- a/openbox/dispatch.c +++ b/openbox/dispatch.c @@ -1,4 +1,5 @@ #include "dispatch.h" +#include "extensions.h" #include @@ -26,8 +27,10 @@ void dispatch_shutdown() guint i; EventType j; - for (i = 0, j = 1; j < EVENT_RANGE; ++i, j <<= 1) + for (i = 0, j = 1; j < EVENT_RANGE; ++i, j <<= 1) { g_slist_free(funcs[i]); + funcs[i] = NULL; + } g_free(funcs); } @@ -47,7 +50,7 @@ void dispatch_register(EventHandler h, EventMask mask) } } -void dispatch_x(XEvent *xe) +void dispatch_x(XEvent *xe, Client *c) { EventType e; guint i; @@ -77,11 +80,20 @@ void dispatch_x(XEvent *xe) e = Event_X_MotionNotify; break; default: + /* XKB events */ + if (xe->type == extensions_xkb_event_basep) { + switch (((XkbAnyEvent*)&e)->xkb_type) { + case XkbBellNotify: + e = Event_X_Bell; + break; + } + } return; } obe.type = e; - obe.data.x = xe; + obe.data.x.e = xe; + obe.data.x.client = c; i = 0; while (e > 1) { -- cgit v1.2.3