]> Dogcows Code - chaz/openbox/blobdiff - openbox/mainloop.c
very cool struts. partial struts actually are partial struts now. possibly way broken...
[chaz/openbox] / openbox / mainloop.c
index 62261dde0af6e52dd2b215aea6a12f8c659e8cd2..36bba6278c8183c6e06e7f50d1b9016e4e9b2003 100644 (file)
@@ -2,7 +2,7 @@
 
    mainloop.c for the Openbox window manager
    Copyright (c) 2006        Mikael Magnusson
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -282,7 +282,7 @@ void ob_main_loop_run(ObMainLoop *loop)
     loop->run = TRUE;
     loop->running = TRUE;
 
-    client_add_destructor(ob_main_loop_client_destroy, loop);
+    client_add_destroy_notify(ob_main_loop_client_destroy, loop);
 
     while (loop->run) {
         if (loop->signal_fired) {
@@ -314,7 +314,7 @@ void ob_main_loop_run(ObMainLoop *loop)
                     ObMainLoopXHandlerType *h = it->data;
                     h->func(&e, h->data);
                 }
-            } while (XPending(loop->display));
+            } while (XPending(loop->display) && loop->run);
         } else if (loop->action_queue) {
             /* only fire off one action at a time, then go back for more
                X events, since the action might cause some X events (like
@@ -331,7 +331,7 @@ void ob_main_loop_run(ObMainLoop *loop)
                     action_unref(act);
                     act = NULL;
                 }
-            } while (!act && loop->action_queue);
+            } while (!act && loop->action_queue && loop->run);
 
             if  (act) {
                 event_curtime = act->data.any.time;
@@ -365,7 +365,7 @@ void ob_main_loop_run(ObMainLoop *loop)
         }
     }
 
-    client_remove_destructor(ob_main_loop_client_destroy);
+    client_remove_destroy_notify(ob_main_loop_client_destroy);
 
     loop->running = FALSE;
 }
This page took 0.021608 seconds and 4 git commands to generate.