@@ -14,67 +14,81 @@ public class Gala.DBus {
1414 public static void init (WindowManagerGala _wm , NotificationsManager notifications_manager , ScreenshotManager screenshot_manager ) {
1515 wm = _wm;
1616
17- Bus . own_name (
18- SESSION , " io.elementary.gala" , NONE ,
19- (connection) = > {
20- try {
21- connection. register_object (" /io/elementary/gala" , WindowDragProvider . get_instance ());
22- } catch (Error e) {
23- warning (e. message);
24- }
25- },
26- () = > {},
27- () = > critical (" Could not acquire name" )
28- );
17+ try {
18+ var session_connection = Bus . get_sync (SESSION , null );
2919
30- Bus . own_name (BusType . SESSION , " org.pantheon.gala" , BusNameOwnerFlags . NONE ,
31- (connection) = > {
32- if (instance == null )
33- instance = new DBus ();
20+ Bus . own_name_on_connection (session_connection, " io.elementary.gala" , NONE ,
21+ (connection, name) = > {
22+ try {
23+ connection. register_object (" /io/elementary/gala" , WindowDragProvider . get_instance ());
24+ } catch (Error e) {
25+ warning (e. message);
26+ }
27+ },
28+ print_warning
29+ );
3430
35- try {
36- connection. register_object (" /org/pantheon/gala" , instance);
37- } catch (Error e) { warning (e. message); }
31+ Bus . own_name_on_connection (session_connection, " org.pantheon.gala" , NONE ,
32+ (connection, name) = > {
33+ if (instance == null ) {
34+ instance = new DBus ();
35+ }
3836
39- try {
40- connection. register_object (" /org/pantheon/gala/DesktopInterface" , new DesktopIntegration (wm));
41- } catch (Error e) { warning (e. message); }
42- },
43- () = > {},
44- () = > warning (" Could not acquire name\n " ) );
37+ try {
38+ connection. register_object (" /org/pantheon/gala" , instance);
39+ connection. register_object (" /org/pantheon/gala/DesktopInterface" , new DesktopIntegration (wm));
40+ } catch (Error e) {
41+ warning (e. message);
42+ }
43+ },
44+ print_warning
45+ );
4546
46- Bus . own_name (BusType . SESSION , " org.gnome.Shell" , BusNameOwnerFlags . NONE ,
47- (connection) = > {
48- try {
49- connection. register_object (" /org/gnome/Shell" , new DBusAccelerator (wm. get_display (), notifications_manager));
50- connection. register_object (" /org/gnome/Shell/Screenshot" , screenshot_manager);
51- } catch (Error e) { warning (e. message); }
52- },
53- () = > {},
54- () = > critical (" Could not acquire name" ) );
47+ Bus . own_name_on_connection (session_connection, " org.gnome.Shell" , NONE ,
48+ (connection, name) = > {
49+ try {
50+ connection. register_object (" /org/gnome/Shell" , new DBusAccelerator (wm. get_display (), notifications_manager));
51+ connection. register_object (" /org/gnome/Shell/Screenshot" , screenshot_manager);
52+ } catch (Error e) {
53+ warning (e. message);
54+ }
55+ },
56+ print_warning
57+ );
5558
56- Bus . own_name ( BusType . SESSION , " org.gnome.Shell.Screenshot" , BusNameOwnerFlags . REPLACE ,
57- () = > {} ,
58- () = > {},
59- () = > critical ( " Could not acquire name " ) );
59+ Bus . own_name_on_connection (session_connection , " org.gnome.Shell.Screenshot" , REPLACE ,
60+ null ,
61+ print_warning
62+ );
6063
61- Bus . own_name (BusType . SESSION , " org.gnome.SessionManager.EndSessionDialog" , BusNameOwnerFlags . NONE ,
62- (connection) = > {
63- try {
64- connection. register_object (" /org/gnome/SessionManager/EndSessionDialog" , SessionManager . init ());
65- } catch (Error e) { warning (e. message); }
66- },
67- () = > {},
68- () = > critical (" Could not acquire name" ) );
64+ Bus . own_name_on_connection (session_connection, " org.gnome.SessionManager.EndSessionDialog" , NONE ,
65+ (connection, name) = > {
66+ try {
67+ connection. register_object (" /org/gnome/SessionManager/EndSessionDialog" , SessionManager . init ());
68+ } catch (Error e) {
69+ warning (e. message);
70+ }
71+ },
72+ print_warning
73+ );
6974
70- Bus . own_name (BusType . SESSION , " org.gnome.ScreenSaver" , BusNameOwnerFlags . REPLACE ,
71- (connection) = > {
72- try {
73- connection. register_object (" /org/gnome/ScreenSaver" , wm. screensaver);
74- } catch (Error e) { warning (e. message); }
75- },
76- () = > {},
77- () = > critical (" Could not acquire ScreenSaver bus" ) );
75+ Bus . own_name_on_connection (session_connection, " org.gnome.ScreenSaver" , REPLACE ,
76+ (connection, name) = > {
77+ try {
78+ connection. register_object (" /org/gnome/ScreenSaver" , wm. screensaver);
79+ } catch (Error e) {
80+ warning (e. message);
81+ }
82+ },
83+ print_warning
84+ );
85+ } catch (Error e) {
86+ critical (" Couldn't connect to DBus" );
87+ }
88+ }
89+
90+ private static void print_warning (GLib .DBusConnection connection , string name ) {
91+ warning (" DBus: Lost name %s " , name);
7892 }
7993
8094 public void perform_action (ActionType type ) throws DBusError , IOError {
0 commit comments