X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fdispatch.c;h=08690a3715c9e74e8ed1842400f2572f3eab4817;hb=69abb86cb0876a26d5d34da9d9c1de7d968cafc2;hp=059f163bc47e66a8fb27297f76b3f8b3f7bcbb3f;hpb=4bceaaf16550a2149d8b4a7315ce8356d700f2ce;p=chaz%2Fopenbox diff --git a/openbox/dispatch.c b/openbox/dispatch.c index 059f163b..08690a37 100644 --- a/openbox/dispatch.c +++ b/openbox/dispatch.c @@ -22,10 +22,7 @@ void dispatch_startup() j >>= 1; ++i; } - funcs = g_new(GSList*, i); - - for (i = 0, j = 1; j < EVENT_RANGE; ++i, j <<= 1) - funcs[i] = NULL; + funcs = g_new0(GSList*, i); } void dispatch_shutdown() @@ -212,3 +209,30 @@ void dispatch_signal(int signal) f->h(&obe, f->data); } } + +void dispatch_move(Client *c, int *x, int *y) +{ + guint i; + EventType e = Event_Client_Moving; + GSList *it; + ObEvent obe; + + obe.type = e; + obe.data.c.client = c; + obe.data.c.num[0] = *x; + obe.data.c.num[1] = *y; + + i = 0; + while (e > 1) { + e >>= 1; + ++i; + } + + for (it = funcs[i]; it != NULL; it = it->next) { + Func *f = it->data; + f->h(&obe, f->data); + } + + *x = obe.data.c.num[0]; + *y = obe.data.c.num[1]; +}