cant consistently tell if we should use WM_DESTROY after the first time they try...
authorDana Jansens <danakj@orodu.net>
Wed, 16 Jan 2008 03:51:04 +0000 (22:51 -0500)
committerDana Jansens <danakj@orodu.net>
Wed, 16 Jan 2008 03:51:04 +0000 (22:51 -0500)
openbox/client.c
openbox/client.h
openbox/ping.c

index 1f7ce97..2f8f58a 100644 (file)
@@ -3212,10 +3212,8 @@ static void client_ping_event(ObClient *self, gboolean 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 @@ void client_close(ObClient *self)
         /* 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;
     }
 }
 
index b9dd9e5..0efeb19 100644 (file)
@@ -231,8 +231,6 @@ struct _ObClient
     /*! 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;
 
index 874d020..531b893 100644 (file)
@@ -87,7 +87,8 @@ void ping_got_pong(Time timestamp)
     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 @@ void ping_got_pong(Time timestamp)
 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);