summaryrefslogtreecommitdiffstats
path: root/src/client/qwaylandwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/qwaylandwindow.cpp')
-rw-r--r--src/client/qwaylandwindow.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index e07133063..17602626b 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -804,8 +804,13 @@ void QWaylandWindow::handleMouse(QWaylandInputDevice *inputDevice, const QWaylan
}
#if QT_CONFIG(cursor)
- if (e.type == QWaylandPointerEvent::Enter)
- restoreMouseCursor(inputDevice);
+ if (e.type == QWaylandPointerEvent::Enter) {
+ QRect windowGeometry = window()->frameGeometry();
+ windowGeometry.moveTopLeft({0, 0}); // convert to wayland surface coordinates
+ QRect contentGeometry = windowGeometry.marginsRemoved(frameMargins());
+ if (contentGeometry.contains(e.local.toPoint()))
+ restoreMouseCursor(inputDevice);
+ }
#endif
}