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

[email protected] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REPORTED                    |RESOLVED
      Latest Commit|                            |https://invent.kde.org/plas
                   |                            |ma/plasma5support/-/commit/
                   |                            |5d9f76c0acad446537b84969386
                   |                            |4e976eaf09a18
         Resolution|---                         |FIXED

--- Comment #4 from [email protected] ---
Git commit 5d9f76c0acad446537b849693864e976eaf09a18 by Vincent de Robert.
Committed on 29/07/2026 at 07:43.
Pushed by ngraham into branch 'master'.

Fix screen power management inhibition never being re-acquirable

stopSuppressingScreenPowerManagement calls
org.freedesktop.ScreenSaver.UnInhibit,
which returns void, but declared the reply as QDBusReply<uint>. A void reply
carries no arguments, so Qt's qDBusReplyFill falls through its type check and
sets QDBusError::InvalidSignature, making isValid() always false.

The cookie reset introduced in bea735c5 is conditional on isValid(), so
m_lockInhibitionCookie is never cleared. Since that cookie is inline static and
therefore process-wide, every subsequent beginSuppressingScreenPowerManagement
hits its guard, returns success, and never contacts PowerDevil. Screen power
management can only be inhibited once per process.

Use QDBusReply<void>, matching stopSuppressingSleep in the same function.

M  +1    -1    src/dataengines/powermanagement/powermanagementjob.cpp

https://invent.kde.org/plasma/plasma5support/-/commit/5d9f76c0acad446537b849693864e976eaf09a18

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

Reply via email to