From de7cbb602f0bcf46735de23e8618ec8cc5a57e5f Mon Sep 17 00:00:00 2001 From: Thorsten Ball Date: Wed, 25 Oct 2023 07:10:41 +0200 Subject: [PATCH] gtk: refactor replacing child of Paned --- src/apprt/gtk/Paned.zig | 15 +++++++++++++++ src/apprt/gtk/Window.zig | 13 +------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/apprt/gtk/Paned.zig b/src/apprt/gtk/Paned.zig index 35beb2a88..1f10b1cc4 100644 --- a/src/apprt/gtk/Paned.zig +++ b/src/apprt/gtk/Paned.zig @@ -130,6 +130,21 @@ pub fn setParent(self: *Paned, parent: Parent) void { self.parent = parent; } +pub fn replaceChildInPosition(self: *Paned, child: Child, position: Position) void { + // Keep position of divider + const parent_paned_position_before = c.gtk_paned_get_position(self.paned); + + self.removeChildInPosition(position); + + switch (position) { + .start => self.addChild1(child), + .end => self.addChild2(child), + } + + // Restore position + c.gtk_paned_set_position(self.paned, parent_paned_position_before); +} + pub fn removeChildren(self: *Paned) void { self.removeChildInPosition(.start); self.removeChildInPosition(.end); diff --git a/src/apprt/gtk/Window.zig b/src/apprt/gtk/Window.zig index 22bf3abf0..2f496e1c4 100644 --- a/src/apprt/gtk/Window.zig +++ b/src/apprt/gtk/Window.zig @@ -300,18 +300,7 @@ pub fn closeSurface(self: *Window, surface: *Surface) void { const parent_paned = parent_paned_tuple[0]; const parent_paned_position = parent_paned_tuple[1]; - // Keep position of divider - const parent_paned_position_before = c.gtk_paned_get_position(parent_paned.paned); - - parent_paned.removeChildInPosition(parent_paned_position); - - switch (parent_paned_position) { - .start => parent_paned.addChild1(sibling_child), - .end => parent_paned.addChild2(sibling_child), - } - - // Restore position - c.gtk_paned_set_position(parent_paned.paned, parent_paned_position_before); + parent_paned.replaceChildInPosition(sibling_child, parent_paned_position); }, }