fix(agsV2 popup): get transform properly for set_x_pos
This commit is contained in:
parent
1eed5db346
commit
ae2c8c2db2
1 changed files with 12 additions and 4 deletions
|
@ -2,9 +2,10 @@ import { App, Astal, Gtk, Widget } from 'astal/gtk3';
|
||||||
import { property, register } from 'astal/gobject';
|
import { property, register } from 'astal/gobject';
|
||||||
import { Binding, idle } from 'astal';
|
import { Binding, idle } from 'astal';
|
||||||
|
|
||||||
import { get_hyprland_monitor, hyprMessage } from '../../lib';
|
import { hyprMessage } from '../../lib';
|
||||||
|
|
||||||
/* Types */
|
/* Types */
|
||||||
|
import AstalHyprland from 'gi://AstalHyprland';
|
||||||
type CloseType = 'none' | 'stay' | 'released' | 'clicked';
|
type CloseType = 'none' | 'stay' | 'released' | 'clicked';
|
||||||
type HyprTransition = 'slide' | 'slide top' | 'slide bottom' | 'slide left' |
|
type HyprTransition = 'slide' | 'slide top' | 'slide bottom' | 'slide left' |
|
||||||
'slide right' | 'popin' | 'fade';
|
'slide right' | 'popin' | 'fade';
|
||||||
|
@ -80,15 +81,22 @@ export class PopupWindow extends Widget.Window {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
set_x_pos(
|
async set_x_pos(
|
||||||
alloc: Gtk.Allocation,
|
alloc: Gtk.Allocation,
|
||||||
side = 'right' as 'left' | 'right',
|
side = 'right' as 'left' | 'right',
|
||||||
) {
|
) {
|
||||||
const monitor = this.gdkmonitor ??
|
const monitor = this.gdkmonitor ??
|
||||||
this.get_display().get_monitor_at_point(alloc.x, alloc.y);
|
this.get_display().get_monitor_at_point(alloc.x, alloc.y);
|
||||||
|
|
||||||
// @ts-expect-error this should exist
|
// FIXME: switch back to this when it's fixed upstream
|
||||||
const transform = get_hyprland_monitor(monitor)?.transform;
|
// const transform = get_hyprland_monitor(monitor)?.transform;
|
||||||
|
const manufacturer = monitor.manufacturer?.replace(',', '');
|
||||||
|
const model = monitor.model?.replace(',', '');
|
||||||
|
const start = `${manufacturer} ${model}`;
|
||||||
|
|
||||||
|
const transform = (JSON.parse(await hyprMessage('j/monitors')) as AstalHyprland.Monitor[])
|
||||||
|
// @ts-expect-error this will be fixed soon
|
||||||
|
.find((m) => m.description?.startsWith(start))?.transform;
|
||||||
|
|
||||||
let width: number;
|
let width: number;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue