Skip to content

Commit 5bfc6c8

Browse files
authored
DBus: cleanup (#2609)
1. Create `print_warning` method to simplify handling name loss 2. Use shorter enums 3. Register objects after we own the name, not when we connect to dbus in general
1 parent 22a7a05 commit 5bfc6c8

File tree

1 file changed

+46
-32
lines changed

1 file changed

+46
-32
lines changed

src/DBus.vala

Lines changed: 46 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -15,66 +15,80 @@ public class Gala.DBus {
1515
wm = _wm;
1616

1717
Bus.own_name (
18-
SESSION, "io.elementary.gala", NONE,
19-
(connection) => {
18+
SESSION, "io.elementary.gala", NONE, null,
19+
(connection, name) => {
2020
try {
2121
connection.register_object ("/io/elementary/gala", WindowDragProvider.get_instance ());
2222
} catch (Error e) {
2323
warning (e.message);
2424
}
2525
},
26-
() => {},
27-
() => critical ("Could not acquire name")
26+
on_name_lost
2827
);
2928

30-
Bus.own_name (BusType.SESSION, "org.pantheon.gala", BusNameOwnerFlags.NONE,
31-
(connection) => {
32-
if (instance == null)
29+
Bus.own_name (
30+
SESSION, "org.pantheon.gala", NONE, null,
31+
(connection, name) => {
32+
if (instance == null) {
3333
instance = new DBus ();
34+
}
3435

3536
try {
3637
connection.register_object ("/org/pantheon/gala", instance);
37-
} catch (Error e) { warning (e.message); }
38-
39-
try {
4038
connection.register_object ("/org/pantheon/gala/DesktopInterface", new DesktopIntegration (wm));
41-
} catch (Error e) { warning (e.message); }
39+
} catch (Error e) {
40+
warning (e.message);
41+
}
4242
},
43-
() => {},
44-
() => warning ("Could not acquire name\n") );
43+
on_name_lost
44+
);
4545

46-
Bus.own_name (BusType.SESSION, "org.gnome.Shell", BusNameOwnerFlags.NONE,
47-
(connection) => {
46+
Bus.own_name (
47+
SESSION, "org.gnome.Shell", NONE, null,
48+
(connection, name) => {
4849
try {
4950
connection.register_object ("/org/gnome/Shell", new DBusAccelerator (wm.get_display (), notifications_manager));
5051
connection.register_object ("/org/gnome/Shell/Screenshot", screenshot_manager);
51-
} catch (Error e) { warning (e.message); }
52+
} catch (Error e) {
53+
warning (e.message);
54+
}
5255
},
53-
() => {},
54-
() => critical ("Could not acquire name") );
56+
on_name_lost
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 (
60+
SESSION, "org.gnome.Shell.Screenshot", REPLACE, null,
61+
null,
62+
on_name_lost
63+
);
6064

61-
Bus.own_name (BusType.SESSION, "org.gnome.SessionManager.EndSessionDialog", BusNameOwnerFlags.NONE,
62-
(connection) => {
65+
Bus.own_name (
66+
SESSION, "org.gnome.SessionManager.EndSessionDialog", NONE, null,
67+
(connection, name) => {
6368
try {
6469
connection.register_object ("/org/gnome/SessionManager/EndSessionDialog", SessionManager.init ());
65-
} catch (Error e) { warning (e.message); }
70+
} catch (Error e) {
71+
warning (e.message);
72+
}
6673
},
67-
() => {},
68-
() => critical ("Could not acquire name") );
74+
on_name_lost
75+
);
6976

70-
Bus.own_name (BusType.SESSION, "org.gnome.ScreenSaver", BusNameOwnerFlags.REPLACE,
71-
(connection) => {
77+
Bus.own_name (
78+
SESSION, "org.gnome.ScreenSaver", REPLACE, null,
79+
(connection, name) => {
7280
try {
7381
connection.register_object ("/org/gnome/ScreenSaver", wm.screensaver);
74-
} catch (Error e) { warning (e.message); }
82+
} catch (Error e) {
83+
warning (e.message);
84+
}
7585
},
76-
() => {},
77-
() => critical ("Could not acquire ScreenSaver bus") );
86+
on_name_lost
87+
);
88+
}
89+
90+
private static void on_name_lost (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)