https://bugs.kde.org/show_bug.cgi?id=435124

--- Comment #11 from Albert Astals Cid <aa...@kde.org> ---
Git commit a6fb2a976ecd778e450afe89c180c8c748beb568 by Albert Astals Cid, on
behalf of Vlad Zahorodnii.
Committed on 03/03/2022 at 20:02.
Pushed by aacid into branch 'kde/5.15'.

Client: Announce an output after receiving more complete state

Output initialization is not atomic, meaning that the compositor may
process a wl_output bind request in one event loop cycle, and the
xdg_output_manager.get_xdg_output in another event loop cycle.

This means that xdg_output properties may arrive in another wl_output
done frame. Prior to xdg-output v3, that wasn't an issue because the
compositor is required to send an xdg_output.done event after sending
xdg_output properties.

Starting with v3, the compositor may choose not to send an
xdg_output.done event after sending xdg_output properties. Therefore,
as is, QtWayland may announce an output with bad logical geometry or
even worse without name assigned by the compositor.

Unfortunately, that breaks applications such as plasmashell. Plasma uses
output names as a criterion to determine what kind of contents should be
displayed on a particular output.

In order to fix the initialization sequence, this change makes every
QWaylandScreen track processed events. After all required events have
been received, the screen can be announced to the rest of Qt.

Change-Id: If5da747edd7af277ec1364cbea105c6994f47402
Reviewed-by: David Edmundson <davidedmund...@kde.org>
(cherry picked from commit 69ea480f2e53ad4a5bbca78cde044eb8d4c48896)

Original Ticket: https://codereview.qt-project.org/c/qt/qtwayland/+/347774

M  +23   -9    src/client/qwaylandscreen.cpp
M  +8    -2    src/client/qwaylandscreen_p.h

https://invent.kde.org/qt/qt/qtwayland/commit/a6fb2a976ecd778e450afe89c180c8c748beb568

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to