diff -r 28c603de3f21 -r 91696f7fa475 ui/gtk/window.c --- a/ui/gtk/window.c Sat Jun 13 12:03:09 2026 +0200 +++ b/ui/gtk/window.c Sat Jun 13 14:12:43 2026 +0200 @@ -45,6 +45,7 @@ #include "headerbar.h" #include "button.h" #include "window.h" +#include "widget.h" static int nwindows = 0; @@ -481,10 +482,13 @@ UIEXPORT void ui_splitview_window_set_visible(UiObject *obj, int pane, UiBool visible) { GtkWidget *panel = NULL; + CxList *backup_items = NULL; if(pane == 0) { panel = g_object_get_data(G_OBJECT(obj->widget), "ui_left_panel_top"); + backup_items = g_object_get_data(G_OBJECT(obj->widget), "ui_toolbar_center_backup"); } else if(pane == 1) { panel = g_object_get_data(G_OBJECT(obj->widget), "ui_right_panel_top"); + // TODO: backup toolbar items } if(panel == NULL) { @@ -493,6 +497,13 @@ } gtk_widget_set_visible(panel, visible); + + if(backup_items) { + CxIterator i = cxListIterator(backup_items); + cx_foreach(GtkWidget*, w, i) { + ui_set_visible(w, !visible); + } + } } #ifdef UI_LIBADWAITA