From 613ad3310d4ca5699eecaf8ca54377a4cbd82a3c Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Mon, 20 Oct 2025 21:03:25 +0200 Subject: [PATCH] fix window_notelist_setvisible --- application/window.c | 3 +-- ui/gtk/window.c | 20 ++++++++++++++++++++ ui/ui/window.h | 1 + 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/application/window.c b/application/window.c index 982246b..b68801b 100644 --- a/application/window.c +++ b/application/window.c @@ -141,8 +141,7 @@ MainWindow* window_init_data(UiObject *obj) { } void window_notelist_setvisible(MainWindow *window, UiBool visible) { - // TODO: re-activate, use new splitview window API - //ui_splitpane_set_visible(window->splitpane, 0, visible); + ui_splitview_window_set_visible(window->obj, 0, visible); window->notelist_isvisible = visible; } diff --git a/ui/gtk/window.c b/ui/gtk/window.c index 44a3fe2..152b4e5 100644 --- a/ui/gtk/window.c +++ b/ui/gtk/window.c @@ -435,6 +435,26 @@ void ui_splitview_window_use_property(UiBool enable) { splitview_window_use_prop = enable; } +UIEXPORT void ui_splitview_window_set_visible(UiObject *obj, int pane, UiBool visible) { + GtkWidget *panel = NULL; + if(pane == 0) { + panel = g_object_get_data(G_OBJECT(obj->widget), "ui_left_panel"); + } else if(pane == 1) { + panel = g_object_get_data(G_OBJECT(obj->widget), "ui_right_panel"); + } + + if(panel == NULL) { + fprintf(stderr, "Error: obj is not a splitview window or invalid pane %d specified\n", pane); + return; + } + +#ifdef UI_LIBADWAITA + gtk_widget_set_visible(gtk_widget_get_parent(panel), visible); +#else + gtk_widget_set_visible(panel, visible); +#endif +} + #ifdef UI_LIBADWAITA static void dialog_response(AdwAlertDialog *self, gchar *response, UiEventData *data) { diff --git a/ui/ui/window.h b/ui/ui/window.h index bbb6f59..83e85a3 100644 --- a/ui/ui/window.h +++ b/ui/ui/window.h @@ -88,6 +88,7 @@ UIEXPORT void ui_splitview_window_set_pos(UiObject *obj, int pos); UIEXPORT int ui_splitview_window_get_pos(UiObject *obj); UIEXPORT void ui_splitview_window_set_default_pos(int pos); UIEXPORT void ui_splitview_window_use_property(UiBool enable); +UIEXPORT void ui_splitview_window_set_visible(UiObject *obj, int pane, UiBool visible); #define ui_dialog(parent, ...) ui_dialog_create(parent, &(UiDialogArgs){ __VA_ARGS__ } ) -- 2.47.3