From 900a7420bd9aa92fc8b528636908de09f88bc2eb Mon Sep 17 00:00:00 2001 From: Aylur Date: Fri, 7 Jun 2024 00:50:17 +0200 Subject: add overrides * Gtk.Container.child * Astal.Box.children --- gjs/src/overrides.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 gjs/src/overrides.ts (limited to 'gjs/src/overrides.ts') diff --git a/gjs/src/overrides.ts b/gjs/src/overrides.ts new file mode 100644 index 0000000..e3d3df5 --- /dev/null +++ b/gjs/src/overrides.ts @@ -0,0 +1,23 @@ +import { Gtk, Astal } from "./imports.js" + +export function setChild(parent: Gtk.Widget, child: Gtk.Widget) { + if (parent instanceof Gtk.Bin) { + const rm = parent.get_child() + if (rm) + parent.remove(rm) + } + if (parent instanceof Gtk.Container) + parent.add(child) +} + +// gjs fails to map List types? +Object.defineProperty(Astal.Box.prototype, "children", { + get() { return this.get_children() }, + set(v) { this.set_children(v) }, +}) + +// gjs deprecated the child setter +Object.defineProperty(Gtk.Container.prototype, "child", { + get() { return this.get_child?.() }, + set(v) { setChild(this, v) }, +}) -- cgit v1.2.3