gnu: emacs-exwm: Fix fullscreen issue.

* gnu/packages/patches/emacs-exwm-fix-fullscreen-issue.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/emacs.scm (emacs-exwm)[sources]: Add
emacs-exwm-fix-fullscreen-issue.patch to patches.
master
Arun Isaac 2018-08-03 18:21:19 +05:30
parent ae7c1c3704
commit fa0a6d93d8
No known key found for this signature in database
GPG Key ID: 2E25EE8B61802BB3
3 changed files with 30 additions and 1 deletions

View File

@ -651,6 +651,7 @@ dist_patch_DATA = \
%D%/packages/patches/elogind-glibc-2.27.patch \
%D%/packages/patches/einstein-build.patch \
%D%/packages/patches/emacs-exec-path.patch \
%D%/packages/patches/emacs-exwm-fix-fullscreen-issue.patch \
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \
%D%/packages/patches/emacs-json-reformat-fix-tests.patch \
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \

View File

@ -6290,7 +6290,8 @@ It should enable you to implement low-level X11 applications.")
version ".tar"))
(sha256
(base32
"11xd2w4h3zdwkdxypvmcz8s7q72cn76lfr9js77jbizyj6b04lr0"))))
"11xd2w4h3zdwkdxypvmcz8s7q72cn76lfr9js77jbizyj6b04lr0"))
(patches (search-patches "emacs-exwm-fix-fullscreen-issue.patch"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-xelb" ,emacs-xelb)))

View File

@ -0,0 +1,27 @@
From 13a14579cc1bb772735f895dd5b4b90c6812f3ee Mon Sep 17 00:00:00 2001
From: Chris Feng <chris.w.feng@gmail.com>
Date: Sun, 29 Jul 2018 00:00:00 +0000
Subject: [PATCH] Fix issues with destroying full screen X windows
* exwm-manage.el (exwm-manage--unmanage-window): Set the Emacs window
of an full screen X window as non-dedicated before killing its buffer
so as not to cause other side effects.
---
exwm-manage.el | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/exwm-manage.el b/exwm-manage.el
index a0a9e05..349157f 100644
--- a/exwm-manage.el
+++ b/exwm-manage.el
@@ -392,6 +392,10 @@ manager is shutting down."
:window window :parent exwm--root :x 0 :y 0))
(xcb:+request exwm--connection
(make-instance 'xcb:DestroyWindow :window container))))
+ (when (exwm-layout--fullscreen-p)
+ (let ((window (get-buffer-window)))
+ (when window
+ (set-window-dedicated-p window nil))))
(exwm-manage--set-client-list)
(xcb:flush exwm--connection))
(let ((kill-buffer-func