This is still broken in Q as I stated before, although it appears to be fixed in Gnome 3.4 and 3.6 trunks.
Here are all my notes:
1) The signal "Changed" is coming from g-s-d when the brightness hotkeys are pressed:
$ dbus-monitor --session "type='signal',sender='org.gnome.SettingsDaemon'"
In Quantal:
signal sender=:1.6 -> dest=org.gnome.SettingsDaemon serial=397 path=/org/gnome/SettingsDaemon/Power; interface=org.gnome.SettingsDaemon.Power.Screen; member=Changed
On Precise, we see the same signal:
signal sender=:1.17 -> dest=org.gnome.SettingsDaemon serial=8416 path=/org/gnome/SettingsDaemon/Power; interface=org.gnome.SettingsDaemon.Power.Screen; member=Changed
2) I instrumented the on_signal call inside gnome-control-center/panels/sceen/cc-screen-panel.c to emit a g_warning whenever any signal was received, I never saw anything come out in Q. When the same code was used in P, the message was printed. This implies, rather obviously that g-c-c is never getting the signal.
3) I then wrote a simplified test application that attempted to synchronously (for simplicity) connect to the same signal and just print a message if one was received and again, no message was received. I modified this code slightly to listen for signals from Gnome Screensaver and I get signals, so I think my sample code is fine. The sample code is attached later. To run it with the gnome-screensaver and get results, start the code and run "gnome-screensaver-command -a" in another terminal, and you should see:
** (process:17715): WARNING **: we get signal from :1.89: ActiveChanged
If you swap the 3 screensaver related lines with the SettingsDaemon code you will get no output. (replace lines 39-41 with 46-48)
4) I see one more interesting thing that may or may not be a problem:
The signals from SettingsDaemon have a Destination field of the settings daemon itself. Those from Gnome Screensaver have a "null" destination:
signal sender=:1.6 -> dest=org.gnome.SettingsDaemon serial=397 path=/org/gnome/SettingsDaemon/Power; interface=org.gnome.SettingsDaemon.Power.Screen; member=Changed
signal sender=:1.89 -> dest=(null destination) serial=78 path=/org/gnome/ScreenSaver; interface=org.gnome.ScreenSaver; member=ActiveChanged
Perhaps this is a problem? I don't know enough about dbus to be sure.
This is still broken in Q as I stated before, although it appears to be fixed in Gnome 3.4 and 3.6 trunks.
Here are all my notes:
1) The signal "Changed" is coming from g-s-d when the brightness hotkeys are pressed:
$ dbus-monitor --session "type=' signal' ,sender= 'org.gnome. SettingsDaemon' " gnome.SettingsD aemon serial=397 path=/org/ gnome/SettingsD aemon/Power; interface= org.gnome. SettingsDaemon. Power.Screen; member=Changed
In Quantal:
signal sender=:1.6 -> dest=org.
On Precise, we see the same signal: gnome.SettingsD aemon serial=8416 path=/org/ gnome/SettingsD aemon/Power; interface= org.gnome. SettingsDaemon. Power.Screen; member=Changed
signal sender=:1.17 -> dest=org.
2) I instrumented the on_signal call inside gnome-control- center/ panels/ sceen/cc- screen- panel.c to emit a g_warning whenever any signal was received, I never saw anything come out in Q. When the same code was used in P, the message was printed. This implies, rather obviously that g-c-c is never getting the signal.
3) I then wrote a simplified test application that attempted to synchronously (for simplicity) connect to the same signal and just print a message if one was received and again, no message was received. I modified this code slightly to listen for signals from Gnome Screensaver and I get signals, so I think my sample code is fine. The sample code is attached later. To run it with the gnome-screensaver and get results, start the code and run "gnome- screensaver- command -a" in another terminal, and you should see:
** (process:17715): WARNING **: we get signal from :1.89: ActiveChanged
If you swap the 3 screensaver related lines with the SettingsDaemon code you will get no output. (replace lines 39-41 with 46-48)
4) I see one more interesting thing that may or may not be a problem:
The signals from SettingsDaemon have a Destination field of the settings daemon itself. Those from Gnome Screensaver have a "null" destination:
signal sender=:1.6 -> dest=org. gnome.SettingsD aemon serial=397 path=/org/ gnome/SettingsD aemon/Power; interface= org.gnome. SettingsDaemon. Power.Screen; member=Changed
signal sender=:1.89 -> dest=(null destination) serial=78 path=/org/ gnome/ScreenSav er; interface= org.gnome. ScreenSaver; member= ActiveChanged
Perhaps this is a problem? I don't know enough about dbus to be sure.