forked from Shinonome/dots-hyprland
overview: unfuck window moving on offset monitors
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user