Allow client destroy notify functions to be removed based on the data associated with them.
Dana Jansens danakj@orodu.net
2 files changed,
16 insertions(+),
0 deletions(-)
M
openbox/client.c
→
openbox/client.c
@@ -167,6 +167,21 @@ }
} } +void client_remove_destroy_notify_data(ObClientCallback func, gpointer data) +{ + GSList *it; + + for (it = client_destroy_notifies; it; it = g_slist_next(it)) { + ClientCallback *d = it->data; + if (d->func == func && d->data == data) { + g_slice_free(ClientCallback, d); + client_destroy_notifies = + g_slist_delete_link(client_destroy_notifies, it); + break; + } + } +} + void client_set_list(void) { Window *windows, *win_it;
M
openbox/client.h
→
openbox/client.h
@@ -326,6 +326,7 @@
/*! Get notified when the client is unmanaged */ void client_add_destroy_notify(ObClientCallback func, gpointer data); void client_remove_destroy_notify(ObClientCallback func); +void client_remove_destroy_notify_data(ObClientCallback func, gpointer data); /*! Manages a given window @param prompt This specifies an ObPrompt which is being managed. It is