diff options
Diffstat (limited to 'lang/gjs/src/gtk3')
-rw-r--r-- | lang/gjs/src/gtk3/astalify.ts | 6 | ||||
-rw-r--r-- | lang/gjs/src/gtk3/index.ts | 4 | ||||
-rw-r--r-- | lang/gjs/src/gtk3/jsx-runtime.ts | 3 |
3 files changed, 7 insertions, 6 deletions
diff --git a/lang/gjs/src/gtk3/astalify.ts b/lang/gjs/src/gtk3/astalify.ts index b9621be..6973805 100644 --- a/lang/gjs/src/gtk3/astalify.ts +++ b/lang/gjs/src/gtk3/astalify.ts @@ -43,7 +43,7 @@ function setProp(obj: any, prop: string, value: any) { export default function astalify< C extends { new(...args: any[]): Gtk.Widget }, ->(cls: C) { +>(cls: C, clsName = cls.name) { class Widget extends cls { get css(): string { return Astal.widget_get_css(this) } set css(css: string) { Astal.widget_set_css(this, css) } @@ -233,7 +233,7 @@ export default function astalify< } GObject.registerClass({ - GTypeName: `Astal_${cls.name}`, + GTypeName: `Astal_${clsName}`, Properties: { "class-name": GObject.ParamSpec.string( "class-name", "", "", GObject.ParamFlags.READWRITE, "", @@ -256,7 +256,7 @@ export default function astalify< return Widget } -type BindableProps<T> = { +export type BindableProps<T> = { [K in keyof T]: Binding<T[K]> | T[K]; } diff --git a/lang/gjs/src/gtk3/index.ts b/lang/gjs/src/gtk3/index.ts index cfafbda..ff641af 100644 --- a/lang/gjs/src/gtk3/index.ts +++ b/lang/gjs/src/gtk3/index.ts @@ -1,9 +1,9 @@ import Astal from "gi://Astal?version=3.0" import Gtk from "gi://Gtk?version=3.0" import Gdk from "gi://Gdk?version=3.0" -import astalify, { type ConstructProps } from "./astalify.js" +import astalify, { type ConstructProps, type BindableProps } from "./astalify.js" export { Astal, Gtk, Gdk } export { default as App } from "./app.js" -export { astalify, ConstructProps } +export { astalify, ConstructProps, BindableProps } export * as Widget from "./widget.js" diff --git a/lang/gjs/src/gtk3/jsx-runtime.ts b/lang/gjs/src/gtk3/jsx-runtime.ts index 22dc424..9da4bb6 100644 --- a/lang/gjs/src/gtk3/jsx-runtime.ts +++ b/lang/gjs/src/gtk3/jsx-runtime.ts @@ -10,7 +10,8 @@ export function Fragment({ children = [], child }: { child?: BindableChild children?: Array<BindableChild> }) { - return mergeBindings([...children, child]) + if (child) children.push(child) + return mergeBindings(children) } export function jsx( |