keyboard: Delay caribou daemon invocation until really needed
Calling g_dbus_proxy_new without any flag means that the caribou daemon will be launched through D-Bus activation, when creating a proxy. It smoked out some corner cases in caribou and at-spi2-core, but generally it would be good to avoid creating unused process. This patch delays the invocation until the "Run" method is called. https://bugzilla.gnome.org/show_bug.cgi?id=739712
This commit is contained in:
parent
21d11b3638
commit
cbfd6a8128
@ -187,14 +187,7 @@ const Keyboard = new Lang.Class({
|
|||||||
this._watchNameId = Gio.bus_watch_name(Gio.BusType.SESSION, CURSOR_BUS_NAME, 0,
|
this._watchNameId = Gio.bus_watch_name(Gio.BusType.SESSION, CURSOR_BUS_NAME, 0,
|
||||||
Lang.bind(this, this._sync),
|
Lang.bind(this, this._sync),
|
||||||
Lang.bind(this, this._sync));
|
Lang.bind(this, this._sync));
|
||||||
this._daemonProxy = new CaribouDaemonProxy(Gio.DBus.session, CARIBOU_BUS_NAME,
|
this._daemonProxy = null;
|
||||||
CARIBOU_OBJECT_PATH,
|
|
||||||
Lang.bind(this, function(proxy, error) {
|
|
||||||
if (error) {
|
|
||||||
log(error.message);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
this._cursorProxy = new CursorManagerProxy(Gio.DBus.session, CURSOR_BUS_NAME,
|
this._cursorProxy = new CursorManagerProxy(Gio.DBus.session, CURSOR_BUS_NAME,
|
||||||
CURSOR_OBJECT_PATH,
|
CURSOR_OBJECT_PATH,
|
||||||
Lang.bind(this, function(proxy, error) {
|
Lang.bind(this, function(proxy, error) {
|
||||||
@ -256,15 +249,28 @@ const Keyboard = new Lang.Class({
|
|||||||
this.actor = null;
|
this.actor = null;
|
||||||
|
|
||||||
this._destroySource();
|
this._destroySource();
|
||||||
this._daemonProxy.QuitRemote(function (result, error) {
|
if (this._daemonProxy) {
|
||||||
if (error) {
|
this._daemonProxy.QuitRemote(function (result, error) {
|
||||||
log(error.message);
|
if (error) {
|
||||||
return;
|
log(error.message);
|
||||||
}
|
return;
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
this._daemonProxy = null;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_setupKeyboard: function() {
|
_setupKeyboard: function() {
|
||||||
|
if (!this._daemonProxy) {
|
||||||
|
this._daemonProxy = new CaribouDaemonProxy(Gio.DBus.session, CARIBOU_BUS_NAME,
|
||||||
|
CARIBOU_OBJECT_PATH,
|
||||||
|
Lang.bind(this, function(proxy, error) {
|
||||||
|
if (error) {
|
||||||
|
log(error.message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
this._daemonProxy.RunRemote(function (result, error) {
|
this._daemonProxy.RunRemote(function (result, error) {
|
||||||
if (error) {
|
if (error) {
|
||||||
log(error.message);
|
log(error.message);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user