overview: partially fix window position for offset monitors (#1388)

This commit is contained in:
end-4
2025-06-11 08:39:18 +02:00
parent ac6a64efab
commit 039cb57167
@@ -156,9 +156,9 @@ Item {
}
}
delegate: OverviewWindow {
id: window
required property var modelData
property var address: `0x${modelData.HyprlandToplevel.address}`
id: window
windowData: windowByAddress[address]
toplevel: modelData
monitorData: root.monitorData
@@ -166,13 +166,16 @@ Item {
availableWorkspaceWidth: root.workspaceImplicitWidth
availableWorkspaceHeight: root.workspaceImplicitHeight
property int monitorId: windowData?.monitor
property var monitor: HyprlandData.monitors[monitorId]
property bool atInitPosition: (initX == x && initY == y)
restrictToWorkspace: Drag.active || atInitPosition
property int workspaceColIndex: (windowData?.workspace.id - 1) % ConfigOptions.overview.numOfCols
property int workspaceRowIndex: Math.floor((windowData?.workspace.id - 1) % root.workspacesShown / ConfigOptions.overview.numOfCols)
xOffset: (root.workspaceImplicitWidth + workspaceSpacing) * workspaceColIndex
yOffset: (root.workspaceImplicitHeight + workspaceSpacing) * workspaceRowIndex
xOffset: (root.workspaceImplicitWidth + workspaceSpacing) * workspaceColIndex - (monitor?.x * root.scale)
yOffset: (root.workspaceImplicitHeight + workspaceSpacing) * workspaceRowIndex - (monitor?.y * root.scale)
Timer {
id: updateWindowPosition
@@ -182,6 +185,7 @@ Item {
onTriggered: {
window.x = Math.round(Math.max((windowData?.at[0] - monitorData?.reserved[0]) * root.scale, 0) + xOffset)
window.y = Math.round(Math.max((windowData?.at[1] - monitorData?.reserved[1]) * root.scale, 0) + yOffset)
console.log(`[OverviewWindow] Updated position for window ${windowData?.address} to (${window.x}, ${window.y})`)
}
}
@@ -201,6 +205,7 @@ Item {
window.pressed = true
window.Drag.active = true
window.Drag.source = window
console.log(`[OverviewWindow] Dragging window ${windowData?.address} from position (${window.x}, ${window.y})`)
}
onReleased: {
const targetWorkspace = root.draggingTargetWorkspace