diff --git a/src/compositor/compositor_api/waylandsurfaceitem.cpp b/src/compositor/compositor_api/waylandsurfaceitem.cpp
index 605e950e0654173ae0a2c9a9f599a01f9ab90554..a080f836fadb59741d9753b971cfe9a44de34211 100644
--- a/src/compositor/compositor_api/waylandsurfaceitem.cpp
+++ b/src/compositor/compositor_api/waylandsurfaceitem.cpp
@@ -149,6 +149,8 @@ void WaylandSurfaceItem::mousePressEvent(QMouseEvent *event)
 {
     if (m_surface) {
         WaylandInputDevice *inputDevice = m_surface->compositor()->defaultInputDevice();
+        if (inputDevice->mouseFocus() != m_surface)
+            inputDevice->setMouseFocus(m_surface, event->pos(), event->globalPos());
         inputDevice->sendMousePressEvent(event->button(), toSurface(event->pos()));
     }
 }