mirror of
https://github.com/zoriya/ags.git
synced 2025-12-06 00:06:10 +00:00
Add gdkmonitor param instead of monitor prop
This commit is contained in:
@@ -19,6 +19,7 @@ export interface WindowProps extends BaseProps<AgsWindow>, Gtk.Window.Constructo
|
||||
layer?: Layer
|
||||
margins?: number[]
|
||||
monitor?: number
|
||||
gdkmonitor?: Gdk.Monitor
|
||||
popup?: boolean
|
||||
visible?: boolean
|
||||
}
|
||||
@@ -48,6 +49,7 @@ export default class AgsWindow extends AgsWidget(Gtk.Window) {
|
||||
layer = 'top',
|
||||
margins = [],
|
||||
monitor = -1,
|
||||
gdkmonitor = undefined,
|
||||
popup = false,
|
||||
visible = true,
|
||||
...params
|
||||
@@ -62,19 +64,26 @@ export default class AgsWindow extends AgsWidget(Gtk.Window) {
|
||||
this.layer = layer;
|
||||
this.margins = margins;
|
||||
this.monitor = monitor;
|
||||
if (gdkmonitor)
|
||||
this.gdkmonitor = gdkmonitor;
|
||||
this.show_all();
|
||||
this.popup = popup;
|
||||
this.visible = visible === true || visible === null && !popup;
|
||||
}
|
||||
|
||||
_gdkmonitor: Gdk.Monitor | null = null;
|
||||
get gdkmonitor(): Gdk.Monitor { return this._gdkmonitor ?? this.monitor }
|
||||
set gdkmonitor(monitor: Gdk.Monitor ) {
|
||||
this._gdkmonitor = monitor;
|
||||
LayerShell.set_monitor(this, monitor);
|
||||
}
|
||||
|
||||
get monitor(): Gdk.Monitor { return this._get('monitor'); }
|
||||
set monitor(monitor: number | Gdk.Monitor) {
|
||||
if (typeof monitor === "number" && monitor < 0)
|
||||
set monitor(monitor: number) {
|
||||
if (monitor < 0)
|
||||
return;
|
||||
|
||||
const m = monitor instanceof Gdk.Monitor
|
||||
? LayerShell.set_monitor(this, monitor)
|
||||
: Gdk.Display.get_default()?.get_monitor(monitor);
|
||||
const m = Gdk.Display.get_default()?.get_monitor(monitor);
|
||||
if (m) {
|
||||
LayerShell.set_monitor(this, m);
|
||||
this._set('monitor', monitor);
|
||||
|
||||
Reference in New Issue
Block a user