diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-05-10 20:52:32 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-05-10 20:52:32 +0000 |
| commit | c4a5149016c98346bae4ce594d37065bd8f3dcf0 (patch) | |
| tree | 15f8b7c2bcfa7bead77014a0ff11645c307c72fc /openbox/event.c | |
| parent | 37169289844646c60985f9a77c0bb8935ac98515 (diff) | |
add a slit to the kernel
Diffstat (limited to 'openbox/event.c')
| -rw-r--r-- | openbox/event.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/openbox/event.c b/openbox/event.c index 02ead5b2..c96583dc 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -1,4 +1,5 @@ #include "openbox.h" +#include "slit.h" #include "client.h" #include "xerror.h" #include "prop.h" @@ -23,6 +24,7 @@ static void event_process(XEvent *e); static void event_handle_root(XEvent *e); +static void event_handle_slitapp(SlitApp *app, XEvent *e); static void event_handle_client(Client *c, XEvent *e); static void event_handle_menu(Menu *menu, XEvent *e); @@ -373,12 +375,14 @@ static gboolean event_ignore(XEvent *e, Client *client) static void event_process(XEvent *e) { Window window; - Client *client; + Client *client = NULL; + SlitApp *slitapp = NULL; Menu *menu = NULL; window = event_get_window(e); if (!(client = g_hash_table_lookup(client_map, &window))) - menu = g_hash_table_lookup(menu_map, &window); + if (!(slitapp = g_hash_table_lookup(slit_map, &window))) + menu = g_hash_table_lookup(menu_map, &window); event_set_lasttime(e); event_hack_mods(e); @@ -391,6 +395,8 @@ static void event_process(XEvent *e) return; } else if (client) event_handle_client(client, e); + else if (slitapp) + event_handle_slitapp(slitapp, e); else if (window == ob_root) event_handle_root(e); else if (e->type == MapRequest) @@ -901,3 +907,22 @@ static void event_handle_menu(Menu *menu, XEvent *e) } } } + +static void event_handle_slitapp(SlitApp *app, XEvent *e) +{ + switch (e->type) { + case UnmapNotify: + if (app->ignore_unmaps) { + app->ignore_unmaps--; + break; + } + slit_remove(app, TRUE); + break; + case DestroyNotify: + slit_remove(app, FALSE); + break; + case ReparentNotify: + slit_remove(app, FALSE); + break; + } +} |
