summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meson.build1
-rw-r--r--plugins/xsettings/meson.build1
-rw-r--r--plugins/xsettings/xsettings-manager.c3
-rw-r--r--plugins/xsettings/xsettings-manager.h1
4 files changed, 6 insertions, 0 deletions
diff --git a/meson.build b/meson.build
index ba2a90ca..239ce871 100644
--- a/meson.build
+++ b/meson.build
@@ -106,6 +106,7 @@ pango_dep = dependency('pango', version: '>= 1.20.0')
polkit_gobject_dep = dependency('polkit-gobject-1', version: '>= 0.114')
upower_glib_dep = dependency('upower-glib', version: '>= 0.99.8')
x11_dep = dependency('x11')
+xfixes_dep = dependency('xfixes', version: '>= 6.0')
enable_systemd = get_option('systemd')
if enable_systemd
diff --git a/plugins/xsettings/meson.build b/plugins/xsettings/meson.build
index 9adb102c..49ed70f1 100644
--- a/plugins/xsettings/meson.build
+++ b/plugins/xsettings/meson.build
@@ -14,6 +14,7 @@ sources = gsd_xsettings_gtk + fc_monitor + wm_button_layout_translation + files(
deps = plugins_deps + [
gtk_dep,
x11_dep,
+ xfixes_dep,
libcommon_dep,
gsettings_desktop_dep,
dependency('fontconfig')
diff --git a/plugins/xsettings/xsettings-manager.c b/plugins/xsettings/xsettings-manager.c
index 947cc9ee..a154ede2 100644
--- a/plugins/xsettings/xsettings-manager.c
+++ b/plugins/xsettings/xsettings-manager.c
@@ -131,6 +131,9 @@ xsettings_manager_new (Display *display,
char buffer[256];
+
+ XFixesSetClientDisconnectMode (display, XFixesClientDisconnectFlagTerminate);
+
manager = g_slice_new (XSettingsManager);
manager->display = display;
diff --git a/plugins/xsettings/xsettings-manager.h b/plugins/xsettings/xsettings-manager.h
index a8cf151b..6346b095 100644
--- a/plugins/xsettings/xsettings-manager.h
+++ b/plugins/xsettings/xsettings-manager.h
@@ -24,6 +24,7 @@
#define XSETTINGS_MANAGER_H
#include <X11/Xlib.h>
+#include <X11/extensions/Xfixes.h>
#include "xsettings-common.h"
typedef struct _XSettingsManager XSettingsManager;