I have code that relies on the ActiveChanged signal to make sure the screen is locked before proceeding. This code is not executed. I had a look with qdbusviewer and when I lock and unlock the screen I can observe the following: Received signal from :1.8, path /ScreenSaver, interface org.freedesktop.ScreenSaver, member ActiveChanged Arguments: false Received signal from :1.8, path /org/freedesktop/ScreenSaver, interface org.freedesktop.ScreenSaver, member ActiveChanged Arguments: false At no point did it tell me the screen was actually locked. I'm not sure if it's telling me false when it locks and false when it unlocks again, or tells me nothing and then false twice. This is running kscreenlocker/p-w/kwin master. Reproducible: Always
I just tried and connected to the signal in qdbusviewer and then locked the screen and unlocked: Received signal from :1.18, path /ScreenSaver, interface org.freedesktop.ScreenSaver, member ActiveChanged Arguments: true Received signal from :1.18, path /org/freedesktop/ScreenSaver, interface org.freedesktop.ScreenSaver, member ActiveChanged Arguments: true Received signal from :1.18, path /ScreenSaver, interface org.freedesktop.ScreenSaver, member ActiveChanged Arguments: false Received signal from :1.18, path /org/freedesktop/ScreenSaver, interface org.freedesktop.ScreenSaver, member ActiveChanged Arguments: false
Maybe also related to https://phabricator.kde.org/D1314
I'm also seeing this issue. I'm running Archlinux with kdescreenlocker version 5.6.2 (arch version 5.6.2-1) which has the fix for D1314. Also qdbus org.kde.screensaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive return false even when screen saver is active but I guess this is due to the same reason ActiveChanged(true) is not sent at all.
Actually, I had version 5.6.2 installed but was still using 5.6.1. After restarting KDE ActiveChanged signal works.
marking as fixed as of comment #4 - that's what I expected given that the change mentioned in comment #2 got merged.