[gnome-shell] main: Do not export DBus interfaces before initializing the UI



commit ec014a7ecf7cde01675773ef5571e8a1c79c72b4
Author: Florian Müllner <fmuellner gnome org>
Date:   Fri Mar 8 21:04:15 2013 +0100

    main: Do not export DBus interfaces before initializing the UI
    
    Since commit 7cdb75e7ce76, initializing UI is deferred until the session
    mode has been loaded. However DBus is still initialized immediately,
    which means that for DBus methods that access properties in Main, there
    is now a window between the method being exposed on the bus and the
    method being ready to be called. At least g-s-d grabbing global keybindings
    is likely to fall in this window on session startup, and almost guaranteed
    when regrabbing bindings after a shell restart.
    To fix, defer initializing DBus as well.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=694321

 js/ui/main.js |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)
---
diff --git a/js/ui/main.js b/js/ui/main.js
index ca4d49e..f438114 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -99,9 +99,6 @@ function start() {
 
     Gio.DesktopAppInfo.set_desktop_env('GNOME');
 
-    shellDBusService = new ShellDBus.GnomeShell();
-    shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler();
-
     sessionMode = new SessionMode.SessionMode();
     sessionMode.connect('sessions-loaded', _sessionsLoaded);
     sessionMode.init();
@@ -110,6 +107,10 @@ function start() {
 function _sessionsLoaded() {
     sessionMode.connect('updated', _sessionUpdated);
     _initializeUI();
+
+    shellDBusService = new ShellDBus.GnomeShell();
+    shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler();
+
     _sessionUpdated();
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]