diff --git a/src/layout/Desktop.ts b/src/layout/Desktop.ts index 09da5ea..86094c9 100644 --- a/src/layout/Desktop.ts +++ b/src/layout/Desktop.ts @@ -47,8 +47,8 @@ class Desktop { return Qt.rect( left, top, - right - left + 1, - bottom - top + 1, + right - left, + bottom - top, ) } diff --git a/src/layout/Grid.ts b/src/layout/Grid.ts index 149d550..a2b8d99 100644 --- a/src/layout/Grid.ts +++ b/src/layout/Grid.ts @@ -89,10 +89,8 @@ class Grid { } public getLeftmostVisibleColumn(visibleRange: Desktop.Range, fullyVisible: boolean) { - const scrollX = visibleRange.getLeft(); for (const column of this.columns.iterator()) { - const x = fullyVisible ? column.getLeft() : column.getRight() + (this.config.gapsInnerHorizontal - 1); - if (x >= scrollX) { + if (column.isVisible(visibleRange, fullyVisible)) { return column; } } @@ -100,13 +98,11 @@ class Grid { } public getRightmostVisibleColumn(visibleRange: Desktop.Range, fullyVisible: boolean) { - const scrollX = visibleRange.getRight(); let last = null; for (const column of this.columns.iterator()) { - const x = fullyVisible ? column.getRight() : column.getLeft() - (this.config.gapsInnerHorizontal - 1); - if (x <= scrollX) { + if (column.isVisible(visibleRange, fullyVisible)) { last = column; - } else { + } else if (last !== null) { break; } } diff --git a/src/world/ClientWrapper.ts b/src/world/ClientWrapper.ts index 4988a8f..f0b68ee 100644 --- a/src/world/ClientWrapper.ts +++ b/src/world/ClientWrapper.ts @@ -122,10 +122,10 @@ class ClientWrapper { return; } const frame = this.kwinClient.frameGeometry; - if (frame.left < 0) { - frame.x = 0; - } else if (frame.right > screenSize.width) { - frame.x = screenSize.width - frame.width; + if (frame.left < screenSize.left) { + frame.x = screenSize.left; + } else if (frame.right > screenSize.right) { + frame.x = screenSize.right - frame.width; } } diff --git a/src/world/PinManager.ts b/src/world/PinManager.ts index a9bc053..8daa4c2 100644 --- a/src/world/PinManager.ts +++ b/src/world/PinManager.ts @@ -75,8 +75,8 @@ namespace PinManager { } private contains(obstacle: QmlRect) { - return obstacle.right >= this.left && obstacle.left <= this.right && - obstacle.bottom >= this.top && obstacle.top <= this.bottom; + return obstacle.right > this.left && obstacle.left < this.right && + obstacle.bottom > this.top && obstacle.top < this.bottom; } public area() {