gnu: emacs-exwm: Fix fullscreen states.
authorDiego Nicola Barbato <dnbarbato@posteo.de>
Thu, 16 Jul 2020 23:18:00 +0000 (01:18 +0200)
committerNicolas Goaziou <mail@nicolasgoaziou.fr>
Thu, 16 Jul 2020 23:18:00 +0000 (01:18 +0200)
* gnu/packages/patches/emacs-exwm-fix-fullscreen-states.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/emacs-xyz.scm (emacs-exwm)[source]: Use it.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
gnu/local.mk
gnu/packages/emacs-xyz.scm
gnu/packages/patches/emacs-exwm-fix-fullscreen-states.patch [new file with mode: 0644]

index 7f4ff1f..a50048e 100644 (file)
@@ -907,6 +907,7 @@ dist_patch_DATA =                                           \
   %D%/packages/patches/elm-compiler-fix-map-key.patch          \
   %D%/packages/patches/emacs27-exec-path.patch                 \
   %D%/packages/patches/emacs-exec-path.patch                   \
+  %D%/packages/patches/emacs-exwm-fix-fullscreen-states.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   \
index 537638b..c3f9d76 100644 (file)
@@ -10900,7 +10900,12 @@ It should enable you to implement low-level X11 applications.")
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "exwm-" version ".tar"))
        (sha256
-        (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))))
+        (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))
+       (patches
+        ;; Patch fixing fullscreen view.  Applied upstream as
+        ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a.  It can be removed in
+        ;; next release.
+        (search-patches "emacs-exwm-fix-fullscreen-states.patch"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-xelb" ,emacs-xelb)))
diff --git a/gnu/packages/patches/emacs-exwm-fix-fullscreen-states.patch b/gnu/packages/patches/emacs-exwm-fix-fullscreen-states.patch
new file mode 100644 (file)
index 0000000..6d31021
--- /dev/null
@@ -0,0 +1,39 @@
+From edb930005b0ba83051ca8a59b493e9a3c8ef580a Mon Sep 17 00:00:00 2001
+From: Chris Feng <chris.w.feng@gmail.com>
+Date: Sun, 14 Jun 2020 00:00:00 +0000
+Subject: [PATCH] Fix fullscreen states
+
+* exwm-layout.el (exwm-layout-set-fullscreen,
+exwm-layout-unset-fullscreen): Use `exwm--id' for interactive use.
+(exwm-layout-unset-fullscreen): Mandatorily clear fullscreen states.
+---
+ exwm-layout.el | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/exwm-layout.el b/exwm-layout.el
+index 170c2be..79d0c95 100644
+--- a/exwm-layout.el
++++ b/exwm-layout.el
+@@ -205,7 +205,7 @@
+                        :border-width 0
+                        :stack-mode xcb:StackMode:Above))
+     (cl-pushnew xcb:Atom:_NET_WM_STATE_FULLSCREEN exwm--ewmh-state)
+-    (exwm-layout--set-ewmh-state id)
++    (exwm-layout--set-ewmh-state exwm--id)
+     (xcb:flush exwm--connection)
+     (set-window-dedicated-p (get-buffer-window) t)
+     (exwm-input--release-keyboard exwm--id)))
+@@ -233,7 +233,9 @@
+       (let ((window (get-buffer-window nil t)))
+         (when window
+           (exwm-layout--show exwm--id window))))
+-    (exwm-layout--set-ewmh-state id)
++    (setq exwm--ewmh-state
++          (delq xcb:Atom:_NET_WM_STATE_FULLSCREEN exwm--ewmh-state))
++    (exwm-layout--set-ewmh-state exwm--id)
+     (xcb:flush exwm--connection)
+     (set-window-dedicated-p (get-buffer-window) nil)
+     (when (eq 'line-mode exwm--selected-input-mode)
+-- 
+2.26.2
+