all repos — openbox @ 1df4e327607f7dcf56826928efdddb809d8f1fc3

openbox fork - make it a bit more like ryudo

add ob_main_loop_timeout_remove_data.
make the timeout remove functions remove *all* timeouts that match
Dana Jansens danakj@orodu.net
commit

1df4e327607f7dcf56826928efdddb809d8f1fc3

parent

aae074a11affd5c8bbe22b326ddbec323bb85677

2 files changed, 17 insertions(+), 3 deletions(-)

jump to
M openbox/mainloop.copenbox/mainloop.c

@@ -525,10 +525,21 @@ GSList *it;

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; - } } }
M openbox/mainloop.hopenbox/mainloop.h

@@ -45,6 +45,9 @@ gpointer data,

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);