Thu, 12 Feb 2026 15:44:46 +0100
add functions for app reference counting
| ui/cocoa/toolkit.m | file | annotate | diff | comparison | revisions | |
| ui/common/object.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/toolkit.c | file | annotate | diff | comparison | revisions | |
| ui/motif/toolkit.c | file | annotate | diff | comparison | revisions | |
| ui/qt/toolkit.cpp | file | annotate | diff | comparison | revisions | |
| ui/ui/toolkit.h | file | annotate | diff | comparison | revisions | |
| ui/win32/toolkit.c | file | annotate | diff | comparison | revisions |
--- a/ui/cocoa/toolkit.m Sun Feb 08 15:19:40 2026 +0100 +++ b/ui/cocoa/toolkit.m Thu Feb 12 15:44:46 2026 +0100 @@ -120,6 +120,14 @@ } } +void ui_app_ref(void) { + // TODO +} + +void ui_app_unref(void) { + // TODO +} + /* ------------------- Window Visibility functions ------------------- */ void ui_show(UiObject *obj) {
--- a/ui/common/object.c Sun Feb 08 15:19:40 2026 +0100 +++ b/ui/common/object.c Thu Feb 12 15:44:46 2026 +0100 @@ -63,6 +63,7 @@ UiObject* ui_dummy_object(void) { UiObject *obj = uic_object_new_toplevel(); obj->ref = 1; + ui_app_ref(); return obj; }
--- a/ui/gtk/toolkit.c Sun Feb 08 15:19:40 2026 +0100 +++ b/ui/gtk/toolkit.c Thu Feb 12 15:44:46 2026 +0100 @@ -135,6 +135,24 @@ } } + +void ui_app_ref(void) { +#ifdef UI_APPLICATION + g_application_hold(G_APPLICATION(&app)); +#else + // TODO +#endif +} + +void ui_app_unref(void) { +#ifdef UI_APPLICATION + g_application_release(G_APPLICATION(&app)); +#else + // TODO +#endif +} + + #ifndef UI_GTK2 void ui_app_quit() { g_application_quit(G_APPLICATION(app)); // TODO: fix, does not work @@ -172,6 +190,7 @@ #endif } else { ui_window_close_request(obj); + ui_app_unref(); } }
--- a/ui/motif/toolkit.c Sun Feb 08 15:19:40 2026 +0100 +++ b/ui/motif/toolkit.c Thu Feb 12 15:44:46 2026 +0100 @@ -142,6 +142,14 @@ } } +void ui_app_ref(void) { + // TODO +} + +void ui_app_unref(void) { + // TODO +} + void ui_app_quit() { XtAppSetExitFlag(app); }
--- a/ui/qt/toolkit.cpp Sun Feb 08 15:19:40 2026 +0100 +++ b/ui/qt/toolkit.cpp Thu Feb 12 15:44:46 2026 +0100 @@ -83,6 +83,14 @@ } } +void ui_app_ref(void) { + // TODO +} + +void ui_app_unref(void) { + // TODO +} + void ui_show(UiObject *obj) { obj->widget->show(); }
--- a/ui/ui/toolkit.h Sun Feb 08 15:19:40 2026 +0100 +++ b/ui/ui/toolkit.h Thu Feb 12 15:44:46 2026 +0100 @@ -738,6 +738,9 @@ UIEXPORT void ui_object_set(UiObject *obj, const char *key, void *data); UIEXPORT void* ui_object_get(UiObject *obj, const char *key); +UIEXPORT void ui_app_ref(void); +UIEXPORT void ui_app_unref(void); + #ifdef __cplusplus } #endif
--- a/ui/win32/toolkit.c Sun Feb 08 15:19:40 2026 +0100 +++ b/ui/win32/toolkit.c Thu Feb 12 15:44:46 2026 +0100 @@ -99,6 +99,14 @@ uic_store_app_properties(); } +void ui_app_ref(void) { + // TODO +} + +void ui_app_unref(void) { + // TODO +} + void ui_show(UiObject *obj) { ui_set_visible(obj->widget, TRUE); }