From 8cae7f7186a0d0425eebabe5fcadb008c84163c3 Mon Sep 17 00:00:00 2001 From: Vlad Zahorodnii Date: Fri, 15 Mar 2024 23:38:49 +0200 Subject: [PATCH] Port more stuff away from Cursor::pos() to interactiveMoveResizeAnchor() The main benefit from doing this is that kwin is going to handle maximizing the window by dragging it on touchscreen correctly if the pointer focus point and touch focus point are on different screens. --- src/window.cpp | 4 ++-- src/x11window.cpp | 2 +- src/xdgshellwindow.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/window.cpp b/src/window.cpp index b53ebf5006..15af89c317 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -2529,7 +2529,7 @@ void Window::keyPressEvent(uint key_code) key_code = key_code & ~Qt::KeyboardModifierMask; int delta = is_control ? 1 : is_alt ? 32 : 8; - QPointF pos = Cursors::self()->mouse()->pos(); + QPointF pos = interactiveMoveResizeAnchor(); switch (key_code) { case Qt::Key_Left: pos.rx() -= delta; @@ -3368,7 +3368,7 @@ void Window::setElectricBorderMaximizing(bool maximizing) { m_electricMaximizing = maximizing; if (maximizing) { - workspace()->outline()->show(quickTileGeometry(electricBorderMode(), Cursors::self()->mouse()->pos()).toRect(), moveResizeGeometry().toRect()); + workspace()->outline()->show(quickTileGeometry(electricBorderMode(), interactiveMoveResizeAnchor()).toRect(), moveResizeGeometry().toRect()); } else { workspace()->outline()->hide(); } diff --git a/src/x11window.cpp b/src/x11window.cpp index 8815780d1f..bfb6d758a9 100644 --- a/src/x11window.cpp +++ b/src/x11window.cpp @@ -4432,7 +4432,7 @@ void X11Window::maximize(MaximizeMode mode) QRectF clientArea; if (isElectricBorderMaximizing()) { - clientArea = workspace()->clientArea(MaximizeArea, this, Cursors::self()->mouse()->pos()); + clientArea = workspace()->clientArea(MaximizeArea, this, interactiveMoveResizeAnchor()); } else { clientArea = workspace()->clientArea(MaximizeArea, this, moveResizeOutput()); } diff --git a/src/xdgshellwindow.cpp b/src/xdgshellwindow.cpp index 2ecb6fb896..8c9e8d02da 100644 --- a/src/xdgshellwindow.cpp +++ b/src/xdgshellwindow.cpp @@ -1484,7 +1484,7 @@ void XdgToplevelWindow::maximize(MaximizeMode mode) return; } - const QRectF clientArea = isElectricBorderMaximizing() ? workspace()->clientArea(MaximizeArea, this, Cursors::self()->mouse()->pos()) : workspace()->clientArea(MaximizeArea, this, moveResizeOutput()); + const QRectF clientArea = isElectricBorderMaximizing() ? workspace()->clientArea(MaximizeArea, this, interactiveMoveResizeAnchor()) : workspace()->clientArea(MaximizeArea, this, moveResizeOutput()); const MaximizeMode oldMode = m_requestedMaximizeMode; const QRectF oldGeometry = moveResizeGeometry();