qtbug-118650.patch 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. From 18f942f3f3a99544f379c66578f14b28cafcef22 Mon Sep 17 00:00:00 2001
  2. From: Weng Xuetian <wengxt@gmail.com>
  3. Date: Fri, 10 Nov 2023 19:43:37 -0800
  4. Subject: client: Always clear queued buffer busy flag when resetting the
  5. window
  6. In 39a003942ebab39a1d3b8bc64f41d0c68e92f4bf, the queued buffer is always
  7. set busy, but it may not be reset correctly if the queued buffer is not
  8. ever attached due to hiding the surface when window visibility is
  9. being updated at a very fast speed.
  10. Fixes: QTBUG-118650
  11. Task-number: QTBUG-118650
  12. Change-Id: Id0bdd3caa69c821bb84927f01b4839f46eee8a10
  13. Reviewed-by: David Edmundson <davidedmundson@kde.org>
  14. Reviewed-by: David Redondo <qt@david-redondo.de>
  15. (cherry picked from commit 6fe83f6076423068b652fa4fcb0b5adbd297f2a8)
  16. Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
  17. ---
  18. src/client/qwaylandwindow.cpp | 3 +++
  19. 1 file changed, 3 insertions(+)
  20. diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
  21. index 4841ba95..b81e00ef 100644
  22. --- a/src/client/qwaylandwindow.cpp
  23. +++ b/src/client/qwaylandwindow.cpp
  24. @@ -310,6 +310,9 @@ void QWaylandWindow::reset()
  25. mOpaqueArea = QRegion();
  26. mMask = QRegion();
  27. + if (mQueuedBuffer) {
  28. + mQueuedBuffer->setBusy(false);
  29. + }
  30. mQueuedBuffer = nullptr;
  31. mQueuedBufferDamage = QRegion();
  32. --
  33. cgit v1.2.3