all repos — openbox @ f9f32d9fbaae9ca415603bb61b36393994afbd16

openbox fork - make it a bit more like ryudo

cant consistently tell if we should use WM_DESTROY after the first time they try close a window.. so just kill when "not responding" is showing
Dana Jansens danakj@orodu.net
commit

f9f32d9fbaae9ca415603bb61b36393994afbd16

parent

d5c824cfd4ec84155772a5c482b0ffdc99dc1ab9

3 files changed, 6 insertions(+), 11 deletions(-)

jump to
M openbox/client.copenbox/client.c

@@ -3212,10 +3212,8 @@ self->not_responding = dead;

client_update_title(self); if (!dead) { - /* the window has started responding again, so don't kill it the first - time they click on close, even if it stops responding again in the - future */ - self->close_tried_destroy = FALSE; + /* try kill it nicely the first time again, if it started responding + at some point */ self->close_tried_term = FALSE; } }

@@ -3230,14 +3228,12 @@ if (!self->delete_window)

/* don't use client_kill(), we should only kill based on PID in response to a lack of PING replies */ XKillClient(ob_display, self->window); - else if (self->not_responding && self->close_tried_destroy) + else 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); - self->close_tried_destroy = TRUE; - self->close_tried_term = FALSE; } }
M openbox/client.hopenbox/client.h

@@ -231,8 +231,6 @@ gboolean ping;

/*! Indicates if the client is trying to close but has stopped responding to pings */ gboolean not_responding; - /*! We tried to close the window with a DESTROY message */ - gboolean close_tried_destroy; /*! We tried to close the window with a SIGTERM */ gboolean close_tried_term;
M openbox/ping.copenbox/ping.c

@@ -87,7 +87,8 @@ /* make sure we're not already pinging it */

for (it = ping_targets; it != NULL; it = g_slist_next(it)) { t = it->data; if (t->sent == timestamp) { - /*ob_debug("Got PONG with timestamp %lu\n", timestamp);*/ + ob_debug("Got PONG with timestamp %lu for %s\n", timestamp, + t->client->title); if (t->waiting > PING_TIMEOUT_WARN) { /* we had notified that they weren't responding, so now we need to notify that they are again */

@@ -106,7 +107,7 @@

static void ping_send(ObPingTarget *t) { t->sent = event_get_server_time(); - /*ob_debug("PINGing client 0x%x at %lu\n", t->client->window, t->sent);*/ + ob_debug("PINGing client %s at %lu\n", t->client->title, t->sent); PROP_MSG_TO(t->client->window, t->client->window, wm_protocols, prop_atoms.net_wm_ping, t->sent, t->client->window, 0, 0, NoEventMask);