From 7d592cd5deb76f3298cfdc85fb428a14120b1c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20Huelga=20D=C3=ADaz?= Date: Mon, 15 Sep 2014 23:28:13 +0200 Subject: [PATCH 1/2] Make window-to-win and restore keep track or window-parameters --- src/workgroups2.el | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/workgroups2.el b/src/workgroups2.el index ad30335..64441e1 100644 --- a/src/workgroups2.el +++ b/src/workgroups2.el @@ -1018,7 +1018,8 @@ options." (dedicated) (selected) (minibuffer-scroll) - (buf-uid)) + (buf-uid) + (wparams)) (wg-defstruct wg buf (uid (wg-generate-uid)) @@ -1938,6 +1939,8 @@ as Workgroups' command remappings." (cond ((not wg-restore-point) win-start) ((eq win-point :max) (point-max)) (t win-point))) + (dolist (pair (wg-win-wparams win)) + (set-window-parameter window (car pair) (cdr pair))) (when (>= win-start (point-max)) (recenter)))) (when wg-restore-window-dedicated-p @@ -1989,7 +1992,11 @@ Return value." :selected selected :minibuffer-scroll (eq window minibuffer-scroll-window) :dedicated (window-dedicated-p window) - :buf-uid (wg-buffer-uid-or-add (window-buffer window)))) + :buf-uid (wg-buffer-uid-or-add (window-buffer window)) + :wparams (let ((result)) + (dolist (p (window-parameters window) result) + (when (cdr (assq (car p) window-persistent-parameters)) + (add-to-list 'result p t)))))) (unless (version< emacs-version "24") ;; To solve: https://github.com/pashinin/workgroups2/issues/51 ;; shouldn't ignore here From 17f79f2805b3931e65dc1cf72caefe35413348cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20Huelga=20D=C3=ADaz?= Date: Tue, 16 Sep 2014 17:28:11 +0200 Subject: [PATCH 2/2] Use win parameters to store window-parameters --- src/workgroups2.el | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/workgroups2.el b/src/workgroups2.el index 64441e1..fac42cd 100644 --- a/src/workgroups2.el +++ b/src/workgroups2.el @@ -1018,8 +1018,7 @@ options." (dedicated) (selected) (minibuffer-scroll) - (buf-uid) - (wparams)) + (buf-uid)) (wg-defstruct wg buf (uid (wg-generate-uid)) @@ -1939,7 +1938,7 @@ as Workgroups' command remappings." (cond ((not wg-restore-point) win-start) ((eq win-point :max) (point-max)) (t win-point))) - (dolist (pair (wg-win-wparams win)) + (dolist (pair (wg-win-parameter win 'window-parameters)) (set-window-parameter window (car pair) (cdr pair))) (when (>= win-start (point-max)) (recenter)))) @@ -1992,11 +1991,11 @@ Return value." :selected selected :minibuffer-scroll (eq window minibuffer-scroll-window) :dedicated (window-dedicated-p window) - :buf-uid (wg-buffer-uid-or-add (window-buffer window)) - :wparams (let ((result)) - (dolist (p (window-parameters window) result) - (when (cdr (assq (car p) window-persistent-parameters)) - (add-to-list 'result p t)))))) + :buf-uid (wg-buffer-uid-or-add (window-buffer window)))) + (wg-set-win-parameter win 'window-parameters (let ((result)) + (dolist (p (window-parameters window) result) + (when (cdr (assq (car p) window-persistent-parameters)) + (add-to-list 'result p t))))) (unless (version< emacs-version "24") ;; To solve: https://github.com/pashinin/workgroups2/issues/51 ;; shouldn't ignore here