diff options
author | Ilya Fedin <fedin-ilja2010@ya.ru> | 2024-01-06 23:18:51 +0400 |
---|---|---|
committer | Ilya Fedin <fedin-ilja2010@ya.ru> | 2024-03-29 12:42:59 +0400 |
commit | fe29b73c34c3c854df28b3c574df022080cefba3 (patch) | |
tree | 237050d04c4fb4a591f2c8a2426534e61ff0b905 | |
parent | 75bbefcdf70bb688a264fa69827af554b186aff7 (diff) |
Client: Replace a bunch of frameMargins with clientSideMargins
Use it wherever window coordinates should be translated to surface
coordinates
This also fixes the usage of QWindow::mapFromGlobal which is in wrong
coordinate space while handling CSD dragging from pending touch points
Change-Id: I66b114610f0e44fea10535594adb5d1284196662
Reviewed-by: David Edmundson <davidedmundson@kde.org>
-rw-r--r-- | src/client/qwaylandinputdevice.cpp | 4 | ||||
-rw-r--r-- | src/client/qwaylandwindow.cpp | 2 | ||||
-rw-r--r-- | src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp | 4 |
3 files changed, 5 insertions, 5 deletions
diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp index d8068c147..1df7ac483 100644 --- a/src/client/qwaylandinputdevice.cpp +++ b/src/client/qwaylandinputdevice.cpp @@ -1560,9 +1560,9 @@ void QWaylandInputDevice::Touch::touch_frame() const QWindowSystemInterface::TouchPoint &tp = mPendingTouchPoints.constLast(); // When the touch event is received, the global pos is calculated with the margins // in mind. Now we need to adjust again to get the correct local pos back. - QMargins margins = window->frameMargins(); + QMargins margins = mFocus->clientSideMargins(); QPoint p = tp.area.center().toPoint(); - QPointF localPos(window->mapFromGlobal(QPoint(p.x() + margins.left(), p.y() + margins.top()))); + QPointF localPos(mFocus->mapFromGlobal(p) + QPoint(margins.left(), margins.top())); if (mFocus->touchDragDecoration(mParent, localPos, tp.area.center(), tp.state, mParent->modifiers())) return; } diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp index dcc086420..34250d113 100644 --- a/src/client/qwaylandwindow.cpp +++ b/src/client/qwaylandwindow.cpp @@ -1376,7 +1376,7 @@ void QWaylandWindow::handleMouseEventWithDecoration(QWaylandInputDevice *inputDe return; } - QMargins marg = frameMargins(); + QMargins marg = clientSideMargins(); QRect windowRect(0 + marg.left(), 0 + marg.top(), geometry().size().width(), diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp index e6258893a..0b014cd5c 100644 --- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp +++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp @@ -65,7 +65,7 @@ void QWaylandEglWindow::setGeometry(const QRect &rect) void QWaylandEglWindow::updateSurface(bool create) { - QMargins margins = mWindowDecoration ? frameMargins() : QMargins{}; + QMargins margins = clientSideMargins(); QRect rect = geometry(); QSize sizeWithMargins = (rect.size() + QSize(margins.left() + margins.right(), margins.top() + margins.bottom())) * scale(); @@ -121,7 +121,7 @@ void QWaylandEglWindow::updateSurface(bool create) QRect QWaylandEglWindow::contentsRect() const { QRect r = geometry(); - QMargins m = frameMargins(); + QMargins m = clientSideMargins(); return QRect(m.left(), m.bottom(), r.width(), r.height()); } |