[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #19 from Kai Uwe Broulik --- Heh, alright. Glad we could figure this out :) -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #18 from Guo Yunhe --- Found out this is not a problem of KDE. It was my mistake when building RetroArch. The `--enable-dbus` option wasn't correctly added to the build command. So it skipped the DBus part and look for xdg_screensaver, like Kai said. -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #17 from Kai Uwe Broulik --- Sure, but not on the /org/freedesktop/ScreenSaver path. It either sends it to the /ScreenSaver or it uses xdg-screensaver but never does it properly send a message to /org/freedesktop/ScreenSaver In https://bugsfiles.kde.org/attachment.cgi?id=123461 it calls Inhibit "RetroArch" on /ScreenSaver which works. In https://bugsfiles.kde.org/attachment.cgi?id=123459 it checks for org.gnome.ScreenSaver, org.mate.ScreenSaver, org.cinnamon.ScreenSaver, and because it doesn't find any, then uses xdg-screensaver which will run and quit releasing the inhibition. Under no circumstance does it properly send Inhibit "RetroArch" on /org/freedesktop/ScreenSaver. Both of these outputs behave wildly different. -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #16 from Guo Yunhe --- Both were compiled with `--enable-dbus` flag. In both dbus-monitor logs, we can find it sends "org.freedesktop.ScreenSaver" message. -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #15 from Kai Uwe Broulik --- from RetroArch/gfx/common/x11_common.c void x11_suspend_screensaver(Window wnd, bool enable) { #ifdef HAVE_DBUS if (dbus_suspend_screensaver(enable)) return; #endif x11_suspend_screensaver_xdg_screensaver(wnd, enable); } So, looks like you're compiling one with and without DBUS? As neither code even tries to call into /org/freedesktop/ScreenSaver. -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #14 from David Edmundson --- method call time=1571929352.111843 sender=:1.129 -> destination=org.freedesktop.ScreenSaver serial=2 path=/ScreenSaver; interface=org.freedesktop.ScreenSaver; member=Inhibit string "RetroArch" string "Playing a game" Your patch shouldn't have made the name and reason change! So either: - we're not testing and comparing the exact equivalent thing - the old code was bailing before sending the message and then going into a fallback path. The reason why that could be happening needs to be investigated. -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #13 from Guo Yunhe --- Created attachment 123461 --> https://bugs.kde.org/attachment.cgi?id=123461=edit dbus-monitor log after patching RetroArch I built and tested the patch for RetroArch. It works as expected. -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #12 from David Edmundson --- method call time=1571928443.638728 sender=:1.117 -> destination=org.freedesktop.ScreenSaver serial=2 path=/ScreenSaver; interface=org.freedesktop.ScreenSaver; member=Inhibit string "0x2e2" string "xdg-screensaver" then immediately afterwards signal time=1571928443.640795 sender=org.freedesktop.DBus -> destination=:1.117 serial=8 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost string ":1.117" It's what I assumed it would it. It's a common trap, the connection is dropping. Though why do you set your reason for inhibition to be "xdg-screensaver"? Are you sure it's going into this dbus code path? I don't see how your proposed patch will fix anything on their side. -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #11 from Kai Uwe Broulik --- Ah, xdg-screensaver -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #10 from Guo Yunhe --- Created attachment 123459 --> https://bugs.kde.org/attachment.cgi?id=123459=edit Output of dbus-monitor when start RetroArch and wait until the screen turns completely dark As David Edmundson said, I recorded the log of dbus-monitor. The fix on RetroArch side is to replace "/org/freedesktop/ScreenSaver" with "/ScreenSaver". https://github.com/libretro/RetroArch/pull/9632/files -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 David Edmundson changed: What|Removed |Added CC||k...@davidedmundson.co.uk Status|REPORTED|RESOLVED Resolution|--- |NOT A BUG --- Comment #9 from David Edmundson --- interface.cpp QDBusConnection::sessionBus().registerObject(QStringLiteral("/ScreenSaver"), this); QDBusConnection::sessionBus().registerObject(QStringLiteral("/org/freedesktop/ScreenSaver"), this); The same object is the same on both paths. If you think there's an issue please attach a log from "dbus-monitor" and starting retroarch and we'll see what you're actually calling. A common trap most apps fall into is disconnecting from DBus just after sending which will release the inhibition. -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #8 from Kai Uwe Broulik --- > kscreenlocker/kcm/kcm.cpp:181: This is the *settings* module. I don't think randomly grepping files for occurrences of "/ScreenSaver" is useful at all and just wasting my time. Please do some proper debugging first. -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #7 from Kai Uwe Broulik --- The call chain clearly works here: qdbus org.freedesktop.ScreenSaver /org/freedesktop/ScreenSaver org.freedesktop.ScreenSaver.Inhibit foo bar 9922 method call time=1571926064.833396 sender=:1.205 -> destination=org.freedesktop.ScreenSaver serial=5 path=/org/freedesktop/ScreenSaver; interface=org.freedesktop.ScreenSaver; member=Inhibit string "foo" string "bar" method call time=1571926064.833714 sender=:1.15 -> destination=org.kde.Solid.PowerManagement.PolicyAgent serial=267 path=/org/kde/Solid/PowerManagement/PolicyAgent; interface=org.kde.Solid.PowerManagement.PolicyAgent; member=AddInhibition uint32 4 string "foo" string "bar" method return time=1571926064.834084 sender=:1.149 -> destination=:1.15 serial=200 reply_serial=267 uint32 10 method return time=1571926064.834277 sender=:1.15 -> destination=:1.205 serial=269 reply_serial=5 uint32 9922 and I can then see powerdevil scheduling an inhibition. (Note that the process holding the inhibition must be running for the whole duration of the inhibiton, if it quits, the inhibition is removed, which is why that qbus call doesn't actually result in an inhibition.) Whatever is causing the screen to still turn off, I don't think it the DBus communication. Again, try running powerdevil from command line and see if it does something stupid (or does not do anything). Maybe it's yet another newfangled systemd powermanagement service that tries to be clever as happened numerous times in the past. -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 --- Comment #6 from Guo Yunhe --- kscreenlocker/kcm/kcm.cpp:181: // reconfigure through DBus OrgKdeScreensaverInterface interface(QStringLiteral("org.kde.screensaver"), QStringLiteral("/ScreenSaver"), QDBusConnection::sessionBus()); Might be the cause. -- You are receiving this mail because: You are watching all bug changes.
[kscreenlocker] [Bug 413391] DBus API /org/freedesktop/ScreenSaver is not supported
https://bugs.kde.org/show_bug.cgi?id=413391 Guo Yunhe changed: What|Removed |Added Product|Powerdevil |kscreenlocker CC||bhus...@gmail.com Version|5.17.0 |unspecified Component|general |kcm -- You are receiving this mail because: You are watching all bug changes.