GNOME Bugzilla – Bug 724323
GsdDeviceMapper: use an async constructor for GnomeRRScreen
Last modified: 2014-03-05 21:05:32 UTC
GnomeRRScreen depends on mutter, so it cannot be created synchronously, because doing so blocks gnome-settings-daemon from registering with gnome-session, and thus blocks mutter/gnome-shell from being spawned. Which triggers a timeout and fails. Instead, do the init asynchronously. We lose the error reporting, but in practice the call should never fail. Also, this creates a small window of time in which GsdDeviceMapper sees no outputs, but that's ok, because we recompute everything when the screen is ready.
Created attachment 269079 [details] [review] GsdDeviceMapper: use an async constructor for GnomeRRScreen
Review of attachment 269079 [details] [review]: Thanks for the patch! Overall, it looks good, although I see several indenting issues in it... when those are fixed this is fine to push. I agree this call should rarely fail, unless gnome-shell blocks/crashes in between (I have to admit I've seen that situation when doing gnome-settings-daemon -r, but never caught this on the jhbuild gnome-shell so I could get symbols), but this should never happen in the theory, so let's do this.
Attachment 269079 [details] pushed as a73c590 - GsdDeviceMapper: use an async constructor for GnomeRRScreen