Home
Phabricator
Search
Log In
Paste
P420
Masterwork From Distant Lands
Active
Public
Actions
Authored by
davidedmundson
on Jun 23 2019, 11:30 AM.
Edit Paste
Archive Paste
View Raw File
Subscribe
Mute Notifications
Award Token
Flag For Later
Tags
None
Subscribers
None
From 4a73ffdcd8e48a43478dc4dbfb63ea5a2dc73c4c Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org>
Date: Sun, 23 Jun 2019 13:25:16 +0200
Subject: [PATCH] Reset frame callback timer when hiding a window
If we hide a window whilst a compositor has a pending frame to show,
it's possible the compositor will not render the frmae and not return
the callback.
If this happens on the next window expose we can be left with
mFrameCallbackTimedOut still true causing isExposed() to be false and us
to not send the next buffer.
Change-Id: I507410415d1a930fd5fa736412055e68fdf6c1d3
---
src/client/qwaylandwindow.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index 8b2c1227..f1e337a6 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -245,6 +245,13 @@ void QWaylandWindow::reset(bool sendDestroyEvent)
mFrameCallback = nullptr;
}
+ if (mFrameCallbackTimerId != -1) {
+ killTimer(mFrameCallbackTimerId);
+ mFrameCallbackTimerId = -1;
+ }
+ mWaitingForFrameCallback = false;
+ mFrameCallbackTimedOut = false;
+
mMask = QRegion();
mQueuedBuffer = nullptr;
}
--
2.22.0
davidedmundson
edited the content of this paste.
(Show Details)
Jun 23 2019, 11:30 AM
davidedmundson
changed the title of this paste from untitled to
Masterwork From Distant Lands
.
Log In to Comment