diff options
author | Jørgen Lind <jorgen.lind@nokia.com> | 2012-01-10 08:09:58 +0100 |
---|---|---|
committer | Samuel Rødal <samuel.rodal@nokia.com> | 2012-01-10 15:56:45 +0100 |
commit | 9717ea05dc097bae0b91bc2d94ce7734b6e70847 (patch) | |
tree | 5e5566a50ab1eb94062a94e0d4b338e0d6593b61 /src | |
parent | bdabd7cc79709c8fb9c2c0187c5d6ac11ae85c5b (diff) |
Expose the mouse focus functions from Wayland::Compositor
For Compositors to handle mouse focus handling, ie enter/leave. This
calls down into wayland-server which keeps track of which surface holds
the focus. Trivial implementation in compositor would be to call
this function for all mouseMove events. I believe overhead should not be
significant.
Change-Id: I8fdd5115cc512562c1a8d8b90c28f8ef2d5b53c9
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/compositor/compositor_api/waylandcompositor.cpp | 12 | ||||
-rw-r--r-- | src/compositor/compositor_api/waylandcompositor.h | 4 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/compositor/compositor_api/waylandcompositor.cpp b/src/compositor/compositor_api/waylandcompositor.cpp index 73ddf236f..6246ff3f8 100644 --- a/src/compositor/compositor_api/waylandcompositor.cpp +++ b/src/compositor/compositor_api/waylandcompositor.cpp @@ -94,6 +94,18 @@ WaylandSurface *WaylandCompositor::inputFocus() const return surfaceImpl ? surfaceImpl->handle() : 0; } +void WaylandCompositor::setMouseFocus(WaylandSurface *surface) +{ + Wayland::Surface *surfaceImpl = surface? surface->handle() : 0; + m_compositor->setPointerFocus(surfaceImpl); +} + +WaylandSurface *WaylandCompositor::mouseFocus() const +{ + Wayland::Surface *surfaceImpl = m_compositor->pointerFocus(); + return surfaceImpl ? surfaceImpl->handle() : 0; +} + void WaylandCompositor::destroyClientForSurface(WaylandSurface *surface) { m_compositor->destroyClientForSurface(surface->handle()); diff --git a/src/compositor/compositor_api/waylandcompositor.h b/src/compositor/compositor_api/waylandcompositor.h index b38458577..7cf88b080 100644 --- a/src/compositor/compositor_api/waylandcompositor.h +++ b/src/compositor/compositor_api/waylandcompositor.h @@ -65,6 +65,10 @@ public: void setInputFocus(WaylandSurface *surface); WaylandSurface *inputFocus() const; + + void setMouseFocus(WaylandSurface *surface); + WaylandSurface *mouseFocus() const; + void destroyClientForSurface(WaylandSurface *surface); void setDirectRenderSurface(WaylandSurface *surface); |