pluginapi: unregister callbacks on lost ptrs

This commit is contained in:
Vaxry
2024-04-22 15:50:01 +01:00
parent 450343b7b8
commit e91513a5e8
4 changed files with 21 additions and 17 deletions

View File

@@ -137,15 +137,19 @@ namespace HyprlandAPI {
Pointer will be free'd by Hyprland on unregisterCallback().
returns: a pointer to the newly allocated function. nullptr on fail.
WARNING: Losing this pointer will unregister the callback!
*/
APICALL std::shared_ptr<HOOK_CALLBACK_FN> registerCallbackDynamic(HANDLE handle, const std::string& event, HOOK_CALLBACK_FN fn);
APICALL [[nodiscard]] std::shared_ptr<HOOK_CALLBACK_FN> registerCallbackDynamic(HANDLE handle, const std::string& event, HOOK_CALLBACK_FN fn);
/*
Unregisters a callback. If the callback was dynamic, frees the memory.
returns: true on success, false on fail
Deprecated: just reset the pointer you received with registerCallbackDynamic
*/
APICALL bool unregisterCallback(HANDLE handle, std::shared_ptr<HOOK_CALLBACK_FN> fn);
APICALL [[deprecated]] bool unregisterCallback(HANDLE handle, std::shared_ptr<HOOK_CALLBACK_FN> fn);
/*
Calls a hyprctl command.