Fix termselect overshoot

This commit is contained in:
outfoxxed 2024-03-20 04:50:15 -07:00
parent eeb47e9dc1
commit 85ca402006
Signed by: outfoxxed
GPG Key ID: 4C88A185FB89301E
3 changed files with 12 additions and 4 deletions

View File

@ -14,7 +14,7 @@ Item {
selectionArea.startY = mouseY;
selectionArea.endX = mouseX;
selectionArea.endY = mouseY;
selectionArea.selecting = true;
selectionArea.startSelection(false);
}
onPositionChanged: {

View File

@ -23,6 +23,7 @@ WlrLayershell {
id: area
property bool selecting: false
property bool initializing: false
property bool locked: false
property real startX: 0
property real startY: 0
property real endX: 0
@ -41,7 +42,13 @@ WlrLayershell {
width: Math.max(startX, endX) - x + border.width * 2
height: Math.max(startY, endY) - y + border.width * 2
function startSelection() {
function startSelection(initialize: bool) {
locked = false;
if (!initialize) {
selecting = true;
return;
}
initializing = true
if (selecting) {
area.startX = mouseArea.mouseX;
@ -56,6 +63,7 @@ WlrLayershell {
initializing = false;
if (wasSelecting && bigEnough) {
locked = true;
selectionComplete(x + 1, y + 1, width - 2, height - 2);
} else {
selecting = false;
@ -81,7 +89,7 @@ WlrLayershell {
area.selecting = true;
}
if (selectionArea.selecting) {
if (!selectionArea.locked) {
area.endX = mouseX;
area.endY = mouseY;
}

View File

@ -64,7 +64,7 @@ ShellRoot {
function onTermSelectChanged() {
if (ShellIpc.termSelect) {
selectionLayer.selectionArea.startSelection();
selectionLayer.selectionArea.startSelection(true);
} else {
selectionLayer.selectionArea.endSelection();
}