From caedde012caea9a85930c6fbafc7ea1b97b82814 Mon Sep 17 00:00:00 2001
From: Filip Vincze <vincze.filip@gmail.com>
Date: Tue, 3 Dec 2024 13:12:45 +0100
Subject: [PATCH] buffer_handler refactoring

---
 src/handlers/buffer_handler.cpp | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/handlers/buffer_handler.cpp b/src/handlers/buffer_handler.cpp
index 59bf3a8..bcd9c53 100644
--- a/src/handlers/buffer_handler.cpp
+++ b/src/handlers/buffer_handler.cpp
@@ -20,20 +20,27 @@ namespace mak {
         // Recreate background and border buffers if present
         if (background)
         {
+            // Assuming buffers for all states are the same
             auto* buffer = ui_system()->get_buffers_folder(background)->find<Link>(UiElement::enabled_link_name())->target<Buffer>();
             buffer->clear();
             auto path = buffer->folder()->path();
-            buffer_generators()->insert_procedural_rectangle(contract(element->get_rect().hi), buffer->name(), path);
+            buffer_generators()->insert_procedural_rectangle(contract(element->get_normalized_size().hi), buffer->name(), path);
         }
 
         if (border)
         {
+            // Assuming buffers for all states are the same
             auto* buffer = ui_system()->get_buffers_folder(border)->find<Link>(UiElement::enabled_link_name())->target<Buffer>();
             buffer->clear();
             auto path = buffer->folder()->path();
-            buffer_generators()->insert_procedural_rectangle(contract(element->get_rect().hi), buffer->name(), path);
+            buffer_generators()->insert_procedural_rectangle_wireframe(contract(element->get_normalized_size().hi), buffer->name(), path);
         }
         // Update objects to show updated buffer
+        for (Folder* subfolder : element->get_foreground_folder()->subfolders()) {
+            if (auto* sub_element = dynamic_cast<UiElement*>(subfolder)) {
+                on_size_changed(sub_element);
+            }
+        }
         element->update_objects();
     }
 
-- 
GitLab