[gnome-shell/wip/carlosg/x11-services-on-demand: 4/4] windowManager: Handle starting/stopping of X11 services
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/carlosg/x11-services-on-demand: 4/4] windowManager: Handle starting/stopping of X11 services
- Date: Thu, 5 Sep 2019 07:43:15 +0000 (UTC)
commit 8adfc5b106d373bdae83b9a7b32e995f2a0d8331
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu Aug 15 13:29:53 2019 +0200
windowManager: Handle starting/stopping of X11 services
We now do 2 things along Xwayland startup/shutdown:
- Start or stop the gnome-session-x11-services target, that will
pull all X11 related services that the session might depend on.
- As we start ibus-daemon manually, trigger a restart in order to
toggle the XIM daemon on and off along with Xwayland presence.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/680
js/misc/ibusManager.js | 2 +-
js/ui/windowManager.js | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
---
diff --git a/js/misc/ibusManager.js b/js/misc/ibusManager.js
index 6c8266271f..5677820d3e 100644
--- a/js/misc/ibusManager.js
+++ b/js/misc/ibusManager.js
@@ -61,7 +61,7 @@ var IBusManager = class {
_spawn(extraArgs = []) {
try {
- let cmdLine = ['ibus-daemon', '--panel', 'disable', '--xim', ...extraArgs];
+ let cmdLine = ['ibus-daemon', '--panel', 'disable', ...extraArgs];
Gio.Subprocess.new(cmdLine, Gio.SubprocessFlags.NONE);
} catch (e) {
log(`Failed to launch ibus-daemon: ${e.message}`);
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index 346485ffdb..ca9c31fd60 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -17,6 +17,7 @@ const PadOsd = imports.ui.padOsd;
const EdgeDragAction = imports.ui.edgeDragAction;
const CloseDialog = imports.ui.closeDialog;
const SwitchMonitor = imports.ui.switchMonitor;
+const IBusManager = imports.misc.ibusManager;
const { loadInterfaceXML } = imports.misc.fileUtils;
@@ -1041,6 +1042,15 @@ var WindowManager = class {
}
});
+ global.display.connect('x11-display-opened', () => {
+ IBusManager.getIBusManager().restartDaemon(['--xim']);
+ Shell.util_start_systemd_unit('gnome-session-x11-services.target', 'fail');
+ });
+ global.display.connect('x11-display-closing', () => {
+ Shell.util_stop_systemd_unit('gnome-session-x11-services.target', 'fail');
+ IBusManager.getIBusManager().restartDaemon();
+ });
+
Main.overview.connect('showing', () => {
for (let i = 0; i < this._dimmedWindows.length; i++)
this._undimWindow(this._dimmedWindows[i]);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]