Improve support for moving popup windows (WIP)

Now, the +evil/window-move-* commands are consistent when used with
popups. Also added doom/popup-move-* as popup-alternatives to
evil-window-move-{very,far}-* commands.

Relevant to #141 #171
This commit is contained in:
Henrik Lissner 2017-09-25 13:02:20 +02:00
parent 311e15487a
commit e7a9a1a3ca
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
3 changed files with 44 additions and 35 deletions

View file

@ -243,12 +243,21 @@ prevent the popup(s) from messing up the UI (or vice versa)."
;;;###autoload
(defun doom-popup-move (direction)
"Move a popup window to another side of the frame, in DIRECTION, which can be
one of the following: 'left 'right 'up 'down"
one of the following: 'left 'right 'above 'below"
(when (doom-popup-p)
(let ((buffer (current-buffer))
(doom-popup-inhibit-autokill t))
(doom/popup-close)
(doom-popup-buffer buffer '(:align direction) 'extend))))
(doom-popup-buffer buffer `(:align ,direction) 'extend))))
;;;###autoload
(defun doom/popup-move-top () "See `doom-popup-move'." (interactive) (doom-popup-move 'above))
;;;###autoload
(defun doom/popup-move-bottom () "See `doom-popup-move'." (interactive) (doom-popup-move 'below))
;;;###autoload
(defun doom/popup-move-left () "See `doom-popup-move'." (interactive) (doom-popup-move 'left))
;;;###autoload
(defun doom/popup-move-right () "See `doom-popup-move'." (interactive) (doom-popup-move 'right))
(defun doom--popup-data (window)
(unless (doom-popup-property :fixed window)

View file

@ -312,10 +312,10 @@ properties."
(let ((map doom-popup-mode-map))
(define-key map [remap evil-window-delete] #'doom/popup-close)
(define-key map [remap evil-save-modified-and-close] #'doom/popup-close)
(define-key map [remap evil-window-move-very-bottom] #'ignore)
(define-key map [remap evil-window-move-very-top] #'ignore)
(define-key map [remap evil-window-move-far-left] #'ignore)
(define-key map [remap evil-window-move-far-right] #'ignore)
(define-key map [remap evil-window-move-very-bottom] #'doom/popup-move-bottom)
(define-key map [remap evil-window-move-very-top] #'doom/popup-move-top)
(define-key map [remap evil-window-move-far-left] #'doom/popup-move-left)
(define-key map [remap evil-window-move-far-right] #'doom/popup-move-right)
(define-key map [remap evil-window-split] #'ignore)
(define-key map [remap evil-window-vsplit] #'ignore))