summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/gjs/src/astalify.ts6
-rw-r--r--core/lua/astal/widget.lua6
2 files changed, 12 insertions, 0 deletions
diff --git a/core/gjs/src/astalify.ts b/core/gjs/src/astalify.ts
index bfe6623..d1c8df5 100644
--- a/core/gjs/src/astalify.ts
+++ b/core/gjs/src/astalify.ts
@@ -19,6 +19,12 @@ function setChildren(parent: Gtk.Widget, children: Gtk.Widget[]) {
if (ch)
parent.remove(ch)
}
+ else if (parent instanceof Gtk.container &&
+ !(parent instanceof Astal.Box ||
+ parent instanceof Astal.Stack)) {
+ for(const ch of parent.get_children())
+ parent.remove(ch)
+ }
// TODO: add more container types
if (parent instanceof Astal.Box) {
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