diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-09-03 15:29:19 +0200 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-09-04 16:12:47 +0200 |
commit | 1b7cf4f3b396b32ecc4822f2acd4f8b7b87d1dc8 (patch) | |
tree | cc795ca3cb23497b6b3d214210ad49f6a5615221 /src/compositor/compositor_api/qwaylandoutput.cpp | |
parent | cc4fe466a1c7dfba937a0926b6f94900ce512942 (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.cpp | 3 |
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())); } |