summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-01-15 22:00:21 -0500
committerDana Jansens <danakj@orodu.net>2008-01-15 22:00:21 -0500
commit07994cb2dcafe33db99da5f7234caefdc0baa809 (patch)
treebaf718d641d15aa8dc2721fc52db1d84c2a6d1eb /openbox
parentd3e9fc8941831477b50678b9bd676e29f4bed1a7 (diff)
when you close a window that you already tried to close and its not responding to pings, then do a kill the next time
Diffstat (limited to 'openbox')
-rw-r--r--openbox/client.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/openbox/client.c b/openbox/client.c
index a4d045dc..517482c7 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -3195,20 +3195,16 @@ void client_close(ObClient *self)
if (!self->delete_window)
client_kill(self);
- /*
- XXX: itd be cool to do timeouts and shit here for killing the client's
- process off
- like... if the window is around after 5 seconds, then the close button
- turns a nice red, and if this function is called again, the client is
- explicitly killed.
- */
-
- PROP_MSG_TO(self->window, self->window, wm_protocols,
- prop_atoms.wm_delete_window, event_curtime, 0, 0, 0,
- NoEventMask);
+ if (self->not_responding)
+ client_kill(self);
+ else {
+ PROP_MSG_TO(self->window, self->window, wm_protocols,
+ prop_atoms.wm_delete_window, event_curtime, 0, 0, 0,
+ NoEventMask);
- if (self->ping)
- ping_start(self, client_ping_event);
+ if (self->ping)
+ ping_start(self, client_ping_event);
+ }
}
void client_kill(ObClient *self)