From b264ae9888575df22e15d89a361845f84202106a Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Fri, 27 Jun 2025 21:37:15 +1000 Subject: internal: use hyprlandtoplevel --- modules/windowinfo/Buttons.qml | 18 +++++++++--------- modules/windowinfo/Details.qml | 28 ++++++++++++++-------------- modules/windowinfo/Preview.qml | 10 +++++----- 3 files changed, 28 insertions(+), 28 deletions(-) (limited to 'modules/windowinfo') diff --git a/modules/windowinfo/Buttons.qml b/modules/windowinfo/Buttons.qml index f298073..c790a35 100644 --- a/modules/windowinfo/Buttons.qml +++ b/modules/windowinfo/Buttons.qml @@ -78,7 +78,7 @@ ColumnLayout { Button { required property int index readonly property int wsId: Math.floor((Hyprland.activeWsId - 1) / 10) * 10 + index + 1 - readonly property bool isCurrent: Hyprland.activeClient.workspace.id === wsId + readonly property bool isCurrent: Hyprland.activeToplevel?.workspace.id === wsId color: isCurrent ? Colours.palette.m3surfaceContainerHighest : Colours.palette.m3tertiaryContainer onColor: isCurrent ? Colours.palette.m3onSurface : Colours.palette.m3onTertiaryContainer @@ -86,7 +86,7 @@ ColumnLayout { disabled: isCurrent function onClicked(): void { - Hyprland.dispatch(`movetoworkspace ${wsId},address:${Hyprland.activeClient?.address}`); + Hyprland.dispatch(`movetoworkspace ${wsId},address:0x${Hyprland.activeToplevel?.address}`); } } } @@ -107,20 +107,20 @@ ColumnLayout { Layout.rightMargin: Appearance.padding.large Layout.bottomMargin: Appearance.padding.large - spacing: Hyprland.activeClient?.floating ? Appearance.spacing.normal : Appearance.spacing.small + spacing: Hyprland.activeToplevel?.lastIpcObject.floating ? Appearance.spacing.normal : Appearance.spacing.small Button { color: Colours.palette.m3secondaryContainer onColor: Colours.palette.m3onSecondaryContainer - text: Hyprland.activeClient?.floating ? qsTr("Tile") : qsTr("Float") + text: Hyprland.activeToplevel?.lastIpcObject.floating ? qsTr("Tile") : qsTr("Float") function onClicked(): void { - Hyprland.dispatch(`togglefloating address:${Hyprland.activeClient?.address}`); + Hyprland.dispatch(`togglefloating address:0x${Hyprland.activeToplevel?.address}`); } } Loader { - active: Hyprland.activeClient?.floating + active: Hyprland.activeToplevel?.lastIpcObject.floating asynchronous: true Layout.fillWidth: active Layout.leftMargin: active ? 0 : -parent.spacing @@ -129,10 +129,10 @@ ColumnLayout { sourceComponent: Button { color: Colours.palette.m3secondaryContainer onColor: Colours.palette.m3onSecondaryContainer - text: Hyprland.activeClient?.lastIpcObject.pinned ? qsTr("Unpin") : qsTr("Pin") + text: Hyprland.activeToplevel?.lastIpcObject.pinned ? qsTr("Unpin") : qsTr("Pin") function onClicked(): void { - Hyprland.dispatch(`pin address:${Hyprland.activeClient?.address}`); + Hyprland.dispatch(`pin address:0x${Hyprland.activeToplevel?.address}`); } } } @@ -143,7 +143,7 @@ ColumnLayout { text: qsTr("Kill") function onClicked(): void { - Hyprland.dispatch(`movetoworkspace ${wsId},address:${Hyprland.activeClient?.address}`); + Hyprland.dispatch(`movetoworkspace ${wsId},address:0x${Hyprland.activeToplevel?.address}`); } } } diff --git a/modules/windowinfo/Details.qml b/modules/windowinfo/Details.qml index da25f61..2d60352 100644 --- a/modules/windowinfo/Details.qml +++ b/modules/windowinfo/Details.qml @@ -14,7 +14,7 @@ ColumnLayout { Label { Layout.topMargin: Appearance.padding.large * 2 - text: Hyprland.activeClient?.title ?? qsTr("No active client") + text: Hyprland.activeToplevel?.title ?? qsTr("No active client") wrapMode: Text.WrapAtWordBoundaryOrAnywhere font.pointSize: Appearance.font.size.large @@ -22,7 +22,7 @@ ColumnLayout { } Label { - text: Hyprland.activeClient?.wmClass ?? qsTr("No active client") + text: Hyprland.activeToplevel?.lastIpcObject.class ?? qsTr("No active client") color: Colours.palette.m3tertiary font.pointSize: Appearance.font.size.larger @@ -41,31 +41,31 @@ ColumnLayout { Detail { icon: "location_on" - text: qsTr("Address: %1").arg(Hyprland.activeClient?.address ?? "unknown") + text: qsTr("Address: %1").arg(`0x${Hyprland.activeToplevel?.address}` ?? "unknown") color: Colours.palette.m3primary } Detail { icon: "location_searching" - text: qsTr("Position: %1, %2").arg(Hyprland.activeClient?.x ?? -1).arg(Hyprland.activeClient?.y ?? -1) + text: qsTr("Position: %1, %2").arg(Hyprland.activeToplevel?.lastIpcObject.at[0] ?? -1).arg(Hyprland.activeToplevel?.lastIpcObject.at[1] ?? -1) } Detail { icon: "resize" - text: qsTr("Size: %1 x %2").arg(Hyprland.activeClient?.width ?? -1).arg(Hyprland.activeClient?.height ?? -1) + text: qsTr("Size: %1 x %2").arg(Hyprland.activeToplevel?.lastIpcObject.size[0] ?? -1).arg(Hyprland.activeToplevel?.lastIpcObject.size[1] ?? -1) color: Colours.palette.m3tertiary } Detail { icon: "workspaces" - text: qsTr("Workspace: %1 (%2)").arg(Hyprland.activeClient?.workspace.name ?? -1).arg(Hyprland.activeClient?.workspace.id ?? -1) + text: qsTr("Workspace: %1 (%2)").arg(Hyprland.activeToplevel?.workspace.name ?? -1).arg(Hyprland.activeToplevel?.workspace.id ?? -1) color: Colours.palette.m3secondary } Detail { icon: "desktop_windows" text: { - const mon = Hyprland.activeClient?.monitor; + const mon = Hyprland.activeToplevel?.monitor; if (mon) return qsTr("Monitor: %1 (%2) at %3, %4").arg(mon.name).arg(mon.id).arg(mon.x).arg(mon.y); return qsTr("Monitor: unknown"); @@ -74,42 +74,42 @@ ColumnLayout { Detail { icon: "page_header" - text: qsTr("Initial title: %1").arg(Hyprland.activeClient?.initialTitle ?? "unknown") + text: qsTr("Initial title: %1").arg(Hyprland.activeToplevel?.lastIpcObject.initialTitle ?? "unknown") color: Colours.palette.m3tertiary } Detail { icon: "category" - text: qsTr("Initial class: %1").arg(Hyprland.activeClient?.initialClass ?? "unknown") + text: qsTr("Initial class: %1").arg(Hyprland.activeToplevel?.lastIpcObject.initialClass ?? "unknown") } Detail { icon: "account_tree" - text: qsTr("Process id: %1").arg(Hyprland.activeClient?.pid ?? -1) + text: qsTr("Process id: %1").arg(Hyprland.activeToplevel?.lastIpcObject.pid ?? -1) color: Colours.palette.m3primary } Detail { icon: "picture_in_picture_center" - text: qsTr("Floating: %1").arg(Hyprland.activeClient?.floating ? "yes" : "no") + text: qsTr("Floating: %1").arg(Hyprland.activeToplevel?.lastIpcObject.floating ? "yes" : "no") color: Colours.palette.m3secondary } Detail { icon: "gradient" - text: qsTr("Xwayland: %1").arg(Hyprland.activeClient?.lastIpcObject.xwayland ? "yes" : "no") + text: qsTr("Xwayland: %1").arg(Hyprland.activeToplevel?.lastIpcObject.xwayland ? "yes" : "no") } Detail { icon: "keep" - text: qsTr("Pinned: %1").arg(Hyprland.activeClient?.lastIpcObject.pinned ? "yes" : "no") + text: qsTr("Pinned: %1").arg(Hyprland.activeToplevel?.lastIpcObject.pinned ? "yes" : "no") color: Colours.palette.m3secondary } Detail { icon: "fullscreen" text: { - const fs = Hyprland.activeClient?.fullscreen; + const fs = Hyprland.activeToplevel?.lastIpcObject.fullscreen; if (fs) return qsTr("Fullscreen state: %1").arg(fs == 0 ? "off" : fs == 1 ? "maximised" : "on"); return qsTr("Fullscreen state: unknown"); diff --git a/modules/windowinfo/Preview.qml b/modules/windowinfo/Preview.qml index 96542c4..2619e8a 100644 --- a/modules/windowinfo/Preview.qml +++ b/modules/windowinfo/Preview.qml @@ -34,7 +34,7 @@ Item { Loader { anchors.centerIn: parent - active: !Hyprland.activeClient + active: !Hyprland.activeToplevel asynchronous: true sourceComponent: ColumnLayout { @@ -69,10 +69,10 @@ Item { anchors.centerIn: parent - captureSource: Hyprland.activeClient ? ToplevelManager.activeToplevel : null + captureSource: Hyprland.activeToplevel?.wayland ?? null live: true - constraintSize.width: parent.height * Math.min(screen.width / screen.height, Hyprland.activeClient.width / Hyprland.activeClient.height) + constraintSize.width: parent.height * Math.min(root.screen.width / root.screen.height, Hyprland.activeToplevel?.lastIpcObject.size[0] / Hyprland.activeToplevel?.lastIpcObject.size[1]) constraintSize.height: parent.height } } @@ -86,11 +86,11 @@ Item { animate: true text: { - const client = Hyprland.activeClient; + const client = Hyprland.activeToplevel; if (!client) return qsTr("No active client"); - const mon = Hyprland.monitors.values[Hyprland.activeClient.lastIpcObject.monitor]; + const mon = client.monitor; return qsTr("%1 on monitor %2 at %3, %4").arg(client.title).arg(mon.name).arg(client.x).arg(client.y); } } -- cgit v1.2.3-freya