use a client destructor to watch for focus_in/out becoming invalid
Dana Jansens danakj@orodu.net
1 files changed,
10 insertions(+),
0 deletions(-)
jump to
M
openbox/event.c
→
openbox/event.c
@@ -57,6 +57,7 @@ #endif
static void event_process(const XEvent *e, gpointer data); static void event_done(gpointer data); +static void event_client_dest(ObClient *client, gpointer data); static void event_handle_root(XEvent *e); static void event_handle_menu(XEvent *e); static void event_handle_dock(ObDock *s, XEvent *e);@@ -148,6 +149,7 @@ IceAddConnectionWatch(ice_watch, NULL);
#endif client_add_destructor(focus_delay_client_dest, NULL); + client_add_destructor(event_client_dest, NULL); } void event_shutdown(gboolean reconfig)@@ -311,6 +313,14 @@ return TRUE;
break; } return FALSE; +} + +static void event_client_dest(ObClient *client, gpointer data) +{ + if (client == focus_in) + focus_in = NULL; + if (client == focus_out) + focus_out = NULL; } static void event_done(gpointer data)