summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/gjs/src/astalify.ts4
-rw-r--r--core/lua/astal/widget.lua6
2 files changed, 9 insertions, 1 deletions
diff --git a/core/gjs/src/astalify.ts b/core/gjs/src/astalify.ts
index 8778be0..a3e5f62 100644
--- a/core/gjs/src/astalify.ts
+++ b/core/gjs/src/astalify.ts
@@ -19,7 +19,9 @@ function setChildren(parent: Gtk.Widget, children: Gtk.Widget[]) {
if (ch)
parent.remove(ch)
}
- else if (parent instanceof Gtk.Container) {
+ else if (parent instanceof Gtk.container &&
+ !(parent instanceof Astal.Box ||
+ parent instanceof Astal.Stack)) {
for(const ch of parent.get_children())
parent.remove(ch)
}
diff --git a/core/lua/astal/widget.lua b/core/lua/astal/widget.lua
index 1f5b07b..f525f4e 100644
--- a/core/lua/astal/widget.lua
+++ b/core/lua/astal/widget.lua
@@ -60,6 +60,12 @@ local function set_children(parent, children)
if rm ~= nil then
parent:remove(rm)
end
+ elseif Gtk.Container:is_type_of(parent) and
+ !(Astal.Box:is_type_of(parent) or
+ Astal.Stack:is_type_of(parent)) then
+ for _, ch in ipairs(parent:get_children()) do
+ parent:remove(ch)
+ end
end
-- TODO: add more container types