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

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

[elpa] master 45c97bb 11/68: Fix selection when two single-window frames


From: Oleh Krehel
Subject: [elpa] master 45c97bb 11/68: Fix selection when two single-window frames
Date: Sat, 21 Mar 2015 19:06:50 +0000

branch: master
commit 45c97bbd45d156d9c67ff9b682ab5bcc7f3dcc49
Author: Kyle Meyer <address@hidden>
Commit: Kyle Meyer <address@hidden>

    Fix selection when two single-window frames
    
    With two single-window frames, `next-window' was being called with
    ALL-FRAMES as nil, resulting in the current window being returned
    instead of the non-selected window. This commit sets the ALL-FRAMES
    argument to 'visible' and modifies `aw-switch-to-window' to account for
    the two-window case where POSITION may not be a window in the current
    frame.
    
    The only handler this commit modifies is `aw-switch-to-window' because
    the behavior for `aw-delete-window' and `aw-swap-window' with multiple
    frames doesn't seem to be well specified at this point.
---
 ace-window.el |   24 +++++++++++++-----------
 1 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/ace-window.el b/ace-window.el
index 602ccad..518e117 100644
--- a/ace-window.el
+++ b/ace-window.el
@@ -138,7 +138,7 @@ HANDLER is a function that takes a window argument."
            (0)
            (1)
            (2
-            (,handler (next-window)))
+            (,handler (next-window nil nil 'visible)))
            (t
             (let ((candidate-list
                    (mapcar (lambda (va)
@@ -230,16 +230,18 @@ Windows are numbered top down, left to right."
 
 (defun aw-switch-to-window (position)
   "Switch to window of `aj-position' structure POSITION."
-  (if (windowp position)
-      (select-window position)
-    (let ((frame (aj-position-frame position))
-          (window (aj-position-window position)))
-      (if (and (frame-live-p frame)
-               (not (eq frame (selected-frame))))
-          (select-frame-set-input-focus (window-frame window)))
-      (if (and (window-live-p window)
-               (not (eq window (selected-window))))
-          (select-window window)))))
+  (let (frame window)
+    (if (windowp position)
+        (setq frame (window-frame position)
+              window position)
+      (setq frame (aj-position-frame position)
+            window (aj-position-window position)))
+    (if (and (frame-live-p frame)
+             (not (eq frame (selected-frame))))
+        (select-frame-set-input-focus frame))
+    (if (and (window-live-p window)
+             (not (eq window (selected-window))))
+        (select-window window))))
 
 (defun aw-delete-window (position)
   "Delete window of `aj-position' structure POSITION."



reply via email to

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