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

Nate Graham <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|https://invent.kde.org/plas |https://invent.kde.org/plas
                   |ma/plasma-workspace/-/commi |ma/plasma-workspace/-/commi
                   |t/908a44175ad8a588d854f9f32 |t/aee2ae59d6cdc82672be7c86c
                   |67a1216bf64e122             |3eb193cbabf678c

--- Comment #29 from Nate Graham <[email protected]> ---
Git commit aee2ae59d6cdc82672be7c86c3eb193cbabf678c by Nate Graham, on behalf
of Błażej Szczygieł.
Committed on 06/07/2026 at 13:49.
Pushed by ngraham into branch 'Plasma/6.7'.

libkworkspace: make sure outputOrderChanged() is always triggered

In some multi-screen scenarios, especially when one screen is enabled
and another screen is disabled in settings, when PC was woken-up from
suspend, we may miss a trigger to place Plasma on our monitor, so the
Plasma disappears.

The WaylandOutputOrder::outputOrderChanged() is emitted more than once,
but hasAllScreens() is always false and we only store the new output
order in m_pendingOutputOrder which. The m_pendingOutputOrder is
modified more than once before it's read, at first time it differs
from m_outputOrder, at second time it's again the same as m_outputOrder.
When Qt refreshes it's screen layout and the refresh() is called,
the m_outputOrder is already the same as m_pendingOutputOrder, so no
signal is emitted. In meantime the Plasma could move to non-available
screen and it disappears.

After the fix, we store the information that m_pendingOutputOrder has
ever been changed before emitting the outputOrderChanged() signal, so
we'll emit the signal anyway.

M  +6    -1    libkworkspace/outputorderwatcher.cpp
M  +30   -0    shell/autotests/shelltest.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/aee2ae59d6cdc82672be7c86c3eb193cbabf678c

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

Reply via email to