From 1df4e327607f7dcf56826928efdddb809d8f1fc3 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Wed, 3 Sep 2003 20:34:14 +0000 Subject: [PATCH] add ob_main_loop_timeout_remove_data. make the timeout remove functions remove *all* timeouts that match --- openbox/mainloop.c | 17 ++++++++++++++--- openbox/mainloop.h | 3 +++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/openbox/mainloop.c b/openbox/mainloop.c index 9df84d34..397f8ae2 100644 --- a/openbox/mainloop.c +++ b/openbox/mainloop.c @@ -525,10 +525,21 @@ void ob_main_loop_timeout_remove(ObMainLoop *loop, for (it = loop->timers; it; it = g_slist_next(it)) { ObMainLoopTimer *t = it->data; - if (t->func == handler) { + if (t->func == handler) + t->del_me = TRUE; + } +} + +void ob_main_loop_timeout_remove_data(ObMainLoop *loop, + GSourceFunc handler, + gpointer data) +{ + GSList *it; + + for (it = loop->timers; it; it = g_slist_next(it)) { + ObMainLoopTimer *t = it->data; + if (t->func == handler && t->data == data) t->del_me = TRUE; - break; - } } } diff --git a/openbox/mainloop.h b/openbox/mainloop.h index ecbcc389..8e0e5ed6 100644 --- a/openbox/mainloop.h +++ b/openbox/mainloop.h @@ -45,6 +45,9 @@ void ob_main_loop_timeout_add(ObMainLoop *loop, GDestroyNotify notify); void ob_main_loop_timeout_remove(ObMainLoop *loop, GSourceFunc handler); +void ob_main_loop_timeout_remove_data(ObMainLoop *loop, + GSourceFunc handler, + gpointer data); void ob_main_loop_run(ObMainLoop *loop); void ob_main_loop_exit(ObMainLoop *loop); -- 2.44.0