summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@nokia.com>2012-01-10 08:09:58 +0100
committerSamuel Rødal <samuel.rodal@nokia.com>2012-01-10 15:56:45 +0100
commit9717ea05dc097bae0b91bc2d94ce7734b6e70847 (patch)
tree5e5566a50ab1eb94062a94e0d4b338e0d6593b61 /src
parentbdabd7cc79709c8fb9c2c0187c5d6ac11ae85c5b (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.cpp12
-rw-r--r--src/compositor/compositor_api/waylandcompositor.h4
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);