summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api/qwaylandoutput.cpp
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-09-03 15:29:19 +0200
committerJørgen Lind <jorgen.lind@theqtcompany.com>2015-09-04 16:12:47 +0200
commit1b7cf4f3b396b32ecc4822f2acd4f8b7b87d1dc8 (patch)
treecc795ca3cb23497b6b3d214210ad49f6a5615221 /src/compositor/compositor_api/qwaylandoutput.cpp
parentcc4fe466a1c7dfba937a0926b6f94900ce512942 (diff)
Make sure we don't send enter events continusly
and when we want to send leave events, then make sure we have a client, since it might have died Change-Id: I86e85a9af050872b4329e685363ea60c33001e94
Diffstat (limited to 'src/compositor/compositor_api/qwaylandoutput.cpp')
-rw-r--r--src/compositor/compositor_api/qwaylandoutput.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compositor/compositor_api/qwaylandoutput.cpp b/src/compositor/compositor_api/qwaylandoutput.cpp
index 33b0acf80..0496cb96b 100644
--- a/src/compositor/compositor_api/qwaylandoutput.cpp
+++ b/src/compositor/compositor_api/qwaylandoutput.cpp
@@ -543,6 +543,7 @@ void QWaylandOutput::sendFrameCallbacks()
if (surfacemapper.surface && surfacemapper.surface->isMapped()) {
if (!surfacemapper.has_entered) {
surfaceEnter(surfacemapper.surface);
+ d->surfaceViews[i].has_entered = true;
}
if (surfacemapper.maybeThrottelingView())
surfacemapper.surface->sendFrameCallbacks();
@@ -560,7 +561,7 @@ void QWaylandOutput::surfaceEnter(QWaylandSurface *surface)
void QWaylandOutput::surfaceLeave(QWaylandSurface *surface)
{
- if (!surface)
+ if (!surface || !surface->client())
return;
QWaylandSurfacePrivate::get(surface)->send_leave(resourceForClient(surface->client()));
}