about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-12-08T19·16+0300
committerVincent Ambo <mail@tazj.in>2021-12-08T19·17+0300
commit57b37cdc83bdebf2c2e2bcc0c01facc63c29c941 (patch)
tree899e0b6b4b81ca3932e4d2436156e731a53ee126
parent14bf3f3cd98bfd766d011c22d45b9d74d84c7da7 (diff)
parent10bd12234e896d35a2c4eafabc62a31126d23bf3 (diff)
subtree(3p/exwm): Update to upstream '10bd1223'
A lot has happened in the meantime (EXWM maintainer change) and this
pulls in all the relevant changes since then.

It may become unnecessary to keep EXWM subtreed, but we'll get to that
later.

Change-Id: I45cc06d747d84b3d28fd0db0e4bb3b749a956583
-rw-r--r--third_party/exwm/exwm-cm.el2
-rw-r--r--third_party/exwm/exwm-config.el2
-rw-r--r--third_party/exwm/exwm-core.el2
-rw-r--r--third_party/exwm/exwm-floating.el2
-rw-r--r--third_party/exwm/exwm-input.el2
-rw-r--r--third_party/exwm/exwm-layout.el8
-rw-r--r--third_party/exwm/exwm-manage.el2
-rw-r--r--third_party/exwm/exwm-randr.el2
-rw-r--r--third_party/exwm/exwm-systemtray.el2
-rw-r--r--third_party/exwm/exwm-workspace.el15
-rw-r--r--third_party/exwm/exwm-xim.el9
-rw-r--r--third_party/exwm/exwm.el6
12 files changed, 32 insertions, 22 deletions
diff --git a/third_party/exwm/exwm-cm.el b/third_party/exwm/exwm-cm.el
index 9228477858..8a45010030 100644
--- a/third_party/exwm/exwm-cm.el
+++ b/third_party/exwm/exwm-cm.el
@@ -1,6 +1,6 @@
 ;;; exwm-cm.el --- Compositing Manager for EXWM  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2016-2020 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2021 Free Software Foundation, Inc.
 
 ;; Author: Chris Feng <chris.w.feng@gmail.com>
 
diff --git a/third_party/exwm/exwm-config.el b/third_party/exwm/exwm-config.el
index bb8258a714..9609f4cf3c 100644
--- a/third_party/exwm/exwm-config.el
+++ b/third_party/exwm/exwm-config.el
@@ -1,6 +1,6 @@
 ;;; exwm-config.el --- Predefined configurations  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2020 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2021 Free Software Foundation, Inc.
 
 ;; Author: Chris Feng <chris.w.feng@gmail.com>
 
diff --git a/third_party/exwm/exwm-core.el b/third_party/exwm/exwm-core.el
index 76454894ab..5356ef9b97 100644
--- a/third_party/exwm/exwm-core.el
+++ b/third_party/exwm/exwm-core.el
@@ -1,6 +1,6 @@
 ;;; exwm-core.el --- Core definitions  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2020 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2021 Free Software Foundation, Inc.
 
 ;; Author: Chris Feng <chris.w.feng@gmail.com>
 
diff --git a/third_party/exwm/exwm-floating.el b/third_party/exwm/exwm-floating.el
index d1882cf746..a9f9315b71 100644
--- a/third_party/exwm/exwm-floating.el
+++ b/third_party/exwm/exwm-floating.el
@@ -1,6 +1,6 @@
 ;;; exwm-floating.el --- Floating Module for EXWM  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2020 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2021 Free Software Foundation, Inc.
 
 ;; Author: Chris Feng <chris.w.feng@gmail.com>
 
diff --git a/third_party/exwm/exwm-input.el b/third_party/exwm/exwm-input.el
index 6506597cfe..50676217f1 100644
--- a/third_party/exwm/exwm-input.el
+++ b/third_party/exwm/exwm-input.el
@@ -1,6 +1,6 @@
 ;;; exwm-input.el --- Input Module for EXWM  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2020 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2021 Free Software Foundation, Inc.
 
 ;; Author: Chris Feng <chris.w.feng@gmail.com>
 
diff --git a/third_party/exwm/exwm-layout.el b/third_party/exwm/exwm-layout.el
index 79d0c95bcd..9173a1c049 100644
--- a/third_party/exwm/exwm-layout.el
+++ b/third_party/exwm/exwm-layout.el
@@ -1,6 +1,6 @@
 ;;; exwm-layout.el --- Layout Module for EXWM  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2020 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2021 Free Software Foundation, Inc.
 
 ;; Author: Chris Feng <chris.w.feng@gmail.com>
 
@@ -219,8 +219,11 @@
                (exwm-layout--fullscreen-p))
     (cl-return-from exwm-layout-unset-fullscreen))
   (with-current-buffer (if id (exwm--id->buffer id) (window-buffer))
+    ;; `exwm-layout--show' relies on `exwm--ewmh-state' to decide whether to
+    ;; fullscreen the window.
     (setq exwm--ewmh-state
           (delq xcb:Atom:_NET_WM_STATE_FULLSCREEN exwm--ewmh-state))
+    (exwm-layout--set-ewmh-state exwm--id)
     (if exwm--floating-frame
         (exwm-layout--show exwm--id (frame-root-window exwm--floating-frame))
       (xcb:+request exwm--connection
@@ -233,9 +236,6 @@
       (let ((window (get-buffer-window nil t)))
         (when window
           (exwm-layout--show exwm--id window))))
-    (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)
diff --git a/third_party/exwm/exwm-manage.el b/third_party/exwm/exwm-manage.el
index 0664c09b75..e940257fc9 100644
--- a/third_party/exwm/exwm-manage.el
+++ b/third_party/exwm/exwm-manage.el
@@ -1,7 +1,7 @@
 ;;; exwm-manage.el --- Window Management Module for  -*- lexical-binding: t -*-
 ;;;                    EXWM
 
-;; Copyright (C) 2015-2020 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2021 Free Software Foundation, Inc.
 
 ;; Author: Chris Feng <chris.w.feng@gmail.com>
 
diff --git a/third_party/exwm/exwm-randr.el b/third_party/exwm/exwm-randr.el
index 7acceb1324..68bfdd70e9 100644
--- a/third_party/exwm/exwm-randr.el
+++ b/third_party/exwm/exwm-randr.el
@@ -1,6 +1,6 @@
 ;;; exwm-randr.el --- RandR Module for EXWM  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2020 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2021 Free Software Foundation, Inc.
 
 ;; Author: Chris Feng <chris.w.feng@gmail.com>
 
diff --git a/third_party/exwm/exwm-systemtray.el b/third_party/exwm/exwm-systemtray.el
index 20dc5226cf..43b3e1eaef 100644
--- a/third_party/exwm/exwm-systemtray.el
+++ b/third_party/exwm/exwm-systemtray.el
@@ -1,7 +1,7 @@
 ;;; exwm-systemtray.el --- System Tray Module for  -*- lexical-binding: t -*-
 ;;;                        EXWM
 
-;; Copyright (C) 2016-2020 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2021 Free Software Foundation, Inc.
 
 ;; Author: Chris Feng <chris.w.feng@gmail.com>
 
diff --git a/third_party/exwm/exwm-workspace.el b/third_party/exwm/exwm-workspace.el
index c1de5da9a3..c513347119 100644
--- a/third_party/exwm/exwm-workspace.el
+++ b/third_party/exwm/exwm-workspace.el
@@ -1,6 +1,6 @@
 ;;; exwm-workspace.el --- Workspace Module for EXWM  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2020 Free Software Foundation, Inc.
+;; Copyright (C) 1015-2021 Free Software Foundation, Inc.
 
 ;; Author: Chris Feng <chris.w.feng@gmail.com>
 
@@ -165,18 +165,20 @@ NIL if FRAME is not a workspace"
   "Return t if FRAME is a workspace."
   (memq frame exwm-workspace--list))
 
-(defvar exwm--client-p-hash-table
-  (make-hash-table :test 'eq :weakness 'key))
+(defvar exwm-workspace--client-p-hash-table
+  (make-hash-table :test 'eq :weakness 'key)
+  "Used to cache the results of calling ‘exwm-workspace--client-p’.")
 
 (defsubst exwm-workspace--client-p (&optional frame)
   "Return non-nil if FRAME is an emacsclient frame."
   (let* ((frame (or frame (selected-frame)))
-         (cached-value (gethash frame exwm--client-p-hash-table 'absent)))
+         (cached-value
+          (gethash frame exwm-workspace--client-p-hash-table 'absent)))
     (if (eq cached-value 'absent)
         (puthash frame
                  (or (frame-parameter frame 'client)
                      (not (display-graphic-p frame)))
-                 exwm--client-p-hash-table)
+                 exwm-workspace--client-p-hash-table)
         cached-value)))
 
 (defvar exwm-workspace--switch-map nil
@@ -1467,7 +1469,8 @@ the next workspace."
       ;; care of converting a workspace into a regular unmanaged frame.
       (let ((exwm-workspace--create-silently t))
         (make-frame)))
-    (exwm-workspace--remove-frame-as-workspace frame))))
+    (exwm-workspace--remove-frame-as-workspace frame)
+    (remhash frame exwm-workspace--client-p-hash-table))))
 
 (defun exwm-workspace--on-after-make-frame (frame)
   "Hook run upon `make-frame' that configures FRAME as a workspace."
diff --git a/third_party/exwm/exwm-xim.el b/third_party/exwm/exwm-xim.el
index acf718e27f..9589648d22 100644
--- a/third_party/exwm/exwm-xim.el
+++ b/third_party/exwm/exwm-xim.el
@@ -1,6 +1,6 @@
 ;;; exwm-xim.el --- XIM Module for EXWM  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2019-2020 Free Software Foundation, Inc.
+;; Copyright (C) 2019-2021 Free Software Foundation, Inc.
 
 ;; Author: Chris Feng <chris.w.feng@gmail.com>
 
@@ -161,6 +161,10 @@ C,no"
 (defvar exwm-xim--_XIM_PROTOCOL nil)
 (defvar exwm-xim--_XIM_XCONNECT nil)
 
+(defvar exwm-xim-buffer-p nil
+  "Whether current buffer is used by exwm-xim.")
+(make-variable-buffer-local 'exwm-xim-buffer-p)
+
 (defun exwm-xim--on-SelectionRequest (data _synthetic)
   "Handle SelectionRequest events on IMS window.
 
@@ -585,6 +589,9 @@ The actual XIM request is in client message data or a property."
           (exwm-input--grab-keyboard))
         (unwind-protect
             (with-temp-buffer
+              ;; This variable is used to test whether exwm-xim is enabled.
+              ;; Used by e.g. pyim-probe.
+              (setq-local exwm-xim-buffer-p t)
               ;; Always show key strokes.
               (let ((input-method-use-echo-area t)
                     (exwm-input-line-mode-passthrough t))
diff --git a/third_party/exwm/exwm.el b/third_party/exwm/exwm.el
index fc96ac7509..b025f6b49a 100644
--- a/third_party/exwm/exwm.el
+++ b/third_party/exwm/exwm.el
@@ -1,10 +1,10 @@
 ;;; exwm.el --- Emacs X Window Manager  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2020 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2021 Free Software Foundation, Inc.
 
 ;; Author: Chris Feng <chris.w.feng@gmail.com>
-;; Maintainer: Chris Feng <chris.w.feng@gmail.com>
-;; Version: 0.24
+;; Maintainer: Adrián Medraño Calvo <adrian@medranocalvo.com>
+;; Version: 0.26
 ;; Package-Requires: ((xelb "0.18"))
 ;; Keywords: unix
 ;; URL: https://github.com/ch11ng/exwm