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

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

[elpa] externals/exwm 65ec749: Fix moving Emacs frames


From: Chris Feng
Subject: [elpa] externals/exwm 65ec749: Fix moving Emacs frames
Date: Sun, 15 Dec 2019 06:35:11 -0500 (EST)

branch: externals/exwm
commit 65ec749bb074b51824576834d1f85c3c4301e999
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>

    Fix moving Emacs frames
    
    * exwm.el (exwm--on-ClientMessage): Avoid moving workspace frames;
    Move floating X window when trying to move the floating frame.
---
 exwm.el | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/exwm.el b/exwm.el
index 36dbcb6..a2fbd03 100644
--- a/exwm.el
+++ b/exwm.el
@@ -479,7 +479,33 @@
                  )
                 ((= direction xcb:ewmh:_NET_WM_MOVERESIZE_CANCEL)
                  (exwm-floating--stop-moveresize))
-                (t (exwm-floating--start-moveresize id direction))))))
+                ;; In case it's a workspace frame.
+                ((and (not buffer)
+                      (catch 'break
+                        (dolist (f exwm-workspace--list)
+                          (when (or (eq id (frame-parameter f 'exwm-outer-id))
+                                    (eq id (frame-parameter f 'exwm-id)))
+                            (throw 'break t)))
+                        nil)))
+                (t
+                 ;; In case it's a floating frame,
+                 ;; move the corresponding X window instead.
+                 (unless buffer
+                   (catch 'break
+                     (dolist (pair exwm--id-buffer-alist)
+                       (with-current-buffer (cdr pair)
+                         (when
+                             (and exwm--floating-frame
+                                  (or (eq id
+                                          (frame-parameter exwm--floating-frame
+                                                           'exwm-outer-id))
+                                      (eq id
+                                          (frame-parameter exwm--floating-frame
+                                                           'exwm-id))))
+                           (setq id exwm--id)
+                           (throw 'break nil))))))
+                 ;; Start to move it.
+                 (exwm-floating--start-moveresize id direction))))))
      ;; _NET_REQUEST_FRAME_EXTENTS
      ((= type xcb:Atom:_NET_REQUEST_FRAME_EXTENTS)
       (let ((buffer (exwm--id->buffer id))



reply via email to

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