emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/exwm 9018545 06/19: New function exwm-workspace--worksp


From: Chris Feng
Subject: [elpa] externals/exwm 9018545 06/19: New function exwm-workspace--workspace-p
Date: Tue, 19 Jul 2016 03:07:07 +0000 (UTC)

branch: externals/exwm
commit 90185457261eb77ac80609d5d219e0837e81af82
Author: Adrián Medraño Calvo <address@hidden>
Commit: Adrián Medraño Calvo <address@hidden>

    New function exwm-workspace--workspace-p
    
        * exwm-workspace.el (exwm-workspace--workspace-p): New function.
        * exwm-input.el (exwm-input--on-ButtonPress):
        * exwm-workspace.el (exwm-workspace-switch):
        * exwm-layout.el (exwm-layout--refresh): Use it.
---
 exwm-input.el     |    3 ++-
 exwm-layout.el    |    5 +++--
 exwm-workspace.el |    6 +++++-
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/exwm-input.el b/exwm-input.el
index d581e7e..22c7a36 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -180,6 +180,7 @@ It's updated in several occasions, and only used by 
`exwm-input--set-focus'.")
 (declare-function exwm-floating--start-moveresize "exwm-floating.el"
                   (id &optional type))
 (declare-function exwm-workspace--position "exwm-workspace.el" (frame))
+(declare-function exwm-workspace--workspace-p "exwm-workspace.el" (workspace))
 
 (defvar exwm-workspace--list)
 
@@ -206,7 +207,7 @@ It's updated in several occasions, and only used by 
`exwm-input--set-focus'.")
                (unless (eq window (selected-window))
                  (setq frame (window-frame window))
                  (unless (eq frame exwm-workspace--current)
-                   (if (memq frame exwm-workspace--list)
+                   (if (exwm-workspace--workspace-p frame)
                        ;; The X window is on another workspace
                        (exwm-workspace-switch
                         (exwm-workspace--position frame))
diff --git a/exwm-layout.el b/exwm-layout.el
index db1aa0d..4d85390 100644
--- a/exwm-layout.el
+++ b/exwm-layout.el
@@ -153,7 +153,6 @@
       (xcb:flush exwm--connection))))
 
 (defvar exwm-workspace--current)
-(defvar exwm-workspace--list)
 
 (declare-function exwm-input-grab-keyboard "exwm-input.el")
 (declare-function exwm-input-release-keyboard "exwm-input.el")
@@ -282,6 +281,8 @@ selected by `other-buffer'."
 
 (defvar exwm-layout-show-all-buffers nil
   "Non-nil to allow switching to buffers on other workspaces.")
+(declare-function exwm-workspace--workspace-p "exwm-workspace.el"
+                  (workspace))
 
 (defun exwm-layout--set-client-list-stacking ()
   "Set _NET_CLIENT_LIST_STACKING."
@@ -312,7 +313,7 @@ selected by `other-buffer'."
         covered-buffers             ;EXWM-buffers covered by a new X window.
         vacated-windows             ;Windows previously displaying 
EXWM-buffers.
         windows)
-    (if (not (memq frame exwm-workspace--list))
+    (if (not (exwm-workspace--workspace-p frame))
         (if (frame-parameter frame 'exwm-outer-id)
             ;; Refresh a floating frame
             (let ((window (frame-first-window frame)))
diff --git a/exwm-workspace.el b/exwm-workspace.el
index a3f4c2e..e2df37e 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -40,6 +40,10 @@ NIL if FRAME is not a workspace"
   "Retrieve total number of workspaces."
   (length exwm-workspace--list))
 
+(defsubst exwm-workspace--workspace-p (frame)
+  "Return t if FRAME is a workspace."
+  (memq frame exwm-workspace--list))
+
 (defvar exwm-workspace--switch-map
   (let ((map (make-sparse-keymap)))
     (define-key map [t] (lambda () (interactive)))
@@ -334,7 +338,7 @@ The optional FORCE option is for internal use only."
                                :stack-mode xcb:StackMode:Above))))
         (setq exwm-workspace--current frame
               exwm-workspace-current-index index)
-        (unless (memq (selected-frame) exwm-workspace--list)
+        (unless (exwm-workspace--workspace-p (selected-frame))
           ;; Save the floating frame window selected on the previous workspace.
           (set-frame-parameter (with-current-buffer (window-buffer)
                                  exwm--frame)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]