]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.c
fix timers so that they work when theres lots of repeating timers in the queue..
[chaz/openbox] / openbox / client.c
index 1f7ce97bcc34389ff9239294c1a248cc4835c231..c90c39bf7cceefa6cc658e38c828a0dd0d203189 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,15 +3228,13 @@ 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 {
+    else
+        /* request the client to close with WM_DELETE_WINDOW */
         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;
-    }
 }
 
 void client_kill(ObClient *self)
This page took 0.021842 seconds and 4 git commands to generate.