overview: unfuck window moving on offset monitors

This commit is contained in:
end-4
2025-07-09 11:41:16 +07:00
parent 8ba91edeae
commit b6f0d00137
2 changed files with 12 additions and 5 deletions
@@ -172,11 +172,19 @@ Item {
property var monitor: HyprlandData.monitors[monitorId]
property bool atInitPosition: (initX == x && initY == y)
restrictToWorkspace: Drag.active || atInitPosition
property int workspaceColIndex: (windowData?.workspace.id - 1) % Config.options.overview.columns
property int workspaceRowIndex: Math.floor((windowData?.workspace.id - 1) % root.workspacesShown / Config.options.overview.columns)
xOffset: (root.workspaceImplicitWidth + workspaceSpacing) * workspaceColIndex - (monitor?.x * root.scale)
xOffset: {
console.log("[OverviewWidget] " + windowData?.address + " title:", windowData?.title)
console.log("[OverviewWidget] workspaceColIndex:", workspaceColIndex)
console.log("[OverviewWidget] root.workspaceImplicitWidth:", root.workspaceImplicitWidth)
console.log("[OverviewWidget] workspaceSpacing:", workspaceSpacing)
console.log("[OverviewWidget] monitor?.x:", monitor?.x)
console.log("[OverviewWidget] root.scale:", root.scale)
console.log("[OverviewWidget] xOffset:", (root.workspaceImplicitWidth + workspaceSpacing) * workspaceColIndex - (monitor?.x * root.scale))
return (root.workspaceImplicitWidth + workspaceSpacing) * workspaceColIndex - (monitor?.x * root.scale)
}
yOffset: (root.workspaceImplicitHeight + workspaceSpacing) * workspaceRowIndex - (monitor?.y * root.scale)
Timer {
@@ -187,7 +195,6 @@ 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})`)
}
}
@@ -42,8 +42,8 @@ Item { // Window
x: initX
y: initY
width: Math.round(Math.min(windowData?.size[0] * root.scale, (restrictToWorkspace ? windowData?.size[0] : availableWorkspaceWidth - x + xOffset)))
height: Math.round(Math.min(windowData?.size[1] * root.scale, (restrictToWorkspace ? windowData?.size[1] : availableWorkspaceHeight - y + yOffset)))
width: windowData?.size[0] * root.scale
height: windowData?.size[1] * root.scale
layer.enabled: true
layer.effect: OpacityMask {