summaryrefslogtreecommitdiff
path: root/.config/emacs/lisp/toggle-window/toggle-window.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/lisp/toggle-window/toggle-window.el')
-rw-r--r--.config/emacs/lisp/toggle-window/toggle-window.el14
1 files changed, 9 insertions, 5 deletions
diff --git a/.config/emacs/lisp/toggle-window/toggle-window.el b/.config/emacs/lisp/toggle-window/toggle-window.el
index 28c7c62..c518159 100644
--- a/.config/emacs/lisp/toggle-window/toggle-window.el
+++ b/.config/emacs/lisp/toggle-window/toggle-window.el
@@ -1,17 +1,21 @@
(defvar toggle-window-configuration nil
"Stores the window configuration")
-;; should rewrite to not do the save configuration thing
-
(defun toggle-window ()
(interactive)
(if (count-windows)
(if (one-window-p)
;; reset configuration if single window
(if toggle-window-configuration
- (progn
- (set-window-configuration toggle-window-configuration)
- (setq toggle-window-configuration nil))
+ (let* ((current-window (selected-window))
+ (current-buffer (window-buffer current-window)))
+ (progn
+ (set-window-configuration toggle-window-configuration)
+ (set-window-buffer current-window current-buffer)
+ ;; make sure current window keeps state
+ (window-state-put current-window-state)
+ (setq toggle-window-configuration nil))
+ )
(message "No previous window layout to restore."))
;; if multiple windows save configuration
(setq toggle-window-configuration (current-window-configuration))