X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fmainloop.c;h=36bba6278c8183c6e06e7f50d1b9016e4e9b2003;hb=33fe8d4470272db6cead0c550d32f5db99e285b7;hp=2af81629e429cc6abeb880c8e59dc0d883f09435;hpb=2442cdfd85e5229c7ee4ac49ca66a7d55ffcb919;p=chaz%2Fopenbox diff --git a/openbox/mainloop.c b/openbox/mainloop.c index 2af81629..36bba627 100644 --- a/openbox/mainloop.c +++ b/openbox/mainloop.c @@ -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; }