Skip to content

Commit f88d7f0

Browse files
committed
DBus: use Bus.own_name_on_connection to own name
1 parent 33df064 commit f88d7f0

File tree

1 file changed

+68
-54
lines changed

1 file changed

+68
-54
lines changed

src/DBus.vala

Lines changed: 68 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)