From 97e854b07d9f259c422fda4cc7b8c26328fd83ab Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 29 Sep 2003 16:32:53 +0000 Subject: [PATCH] use a client destructor to watch for focus_in/out becoming invalid --- openbox/event.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/openbox/event.c b/openbox/event.c index 8a9b83be..f68517d1 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -57,6 +57,7 @@ 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 @@ void event_startup(gboolean reconfig) #endif client_add_destructor(focus_delay_client_dest, NULL); + client_add_destructor(event_client_dest, NULL); } void event_shutdown(gboolean reconfig) @@ -313,6 +315,14 @@ static gboolean event_ignore(XEvent *e, ObClient *client) 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) { static ObClient *last = NULL; -- 2.39.2