summaryrefslogtreecommitdiff
path: root/openbox/event.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-09-29 16:32:53 +0000
committerDana Jansens <danakj@orodu.net>2003-09-29 16:32:53 +0000
commit97e854b07d9f259c422fda4cc7b8c26328fd83ab (patch)
tree293506b5ad684a339031151105a3eddc48fdccae /openbox/event.c
parent58977733d0ad42642869b33a8fed4769f366a48a (diff)
use a client destructor to watch for focus_in/out becoming invalid
Diffstat (limited to 'openbox/event.c')
-rw-r--r--openbox/event.c10
1 files changed, 10 insertions, 0 deletions
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;