all repos — openbox @ 52cdea653c9b3a7055bca40e4019f599d9291bb6

openbox fork - make it a bit more like ryudo

Allow client destroy notify functions to be removed based on the data associated with them.
Dana Jansens danakj@orodu.net
commit

52cdea653c9b3a7055bca40e4019f599d9291bb6

parent

34b332c22acb9f7f194eb8de80b5f4a6529e7e16

2 files changed, 16 insertions(+), 0 deletions(-)

jump to
M openbox/client.copenbox/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.hopenbox/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