diff --git a/src/workgroups-commands.el b/src/workgroups-commands.el index 6975bda00a2e46d7ecc041d88b446dc30b47320a..a6dd2df3ba88f680bbefbcf8e41465e9fa62f6f0 100644 --- a/src/workgroups-commands.el +++ b/src/workgroups-commands.el @@ -41,6 +41,13 @@ (wg-set-previous-workgroup current) (wg-set-current-workgroup workgroup) + ;; Save "last-workgroup" to the session params + (if (and (wg-current-session t) + (wg-current-workgroup t)) + (wg-set-session-parameter (wg-current-session t) + 'last-workgroup + (wg-workgroup-name (wg-current-workgroup)))) + ;; If a workgroup had ECB - turn it on (if (and (boundp 'ecb-minor-mode) (not ecb-minor-mode) @@ -719,7 +726,13 @@ the session regardless of whether it's been modified." (if (and wg-open-this-wg (member wg-open-this-wg (wg-workgroup-names))) (wg-switch-to-workgroup wg-open-this-wg) - (wg-switch-to-workgroup (car it)))) + (if (and wg-load-last-workgroup + (member (wg-session-parameter (wg-current-session t) 'last-workgroup) + (wg-workgroup-names))) + (wg-switch-to-workgroup + (wg-session-parameter (wg-current-session t) 'last-workgroup)) + (wg-switch-to-workgroup (car it))) + )) (wg-fontified-message (:cmd "Loaded: ") (:file filename))) (t (wg-query-and-save-if-modified) diff --git a/src/workgroups-variables.el b/src/workgroups-variables.el index 594368d70c22f55cfd78c72d0669fde54a2a64a6..0fe06cb68a2b18d339b55d6c63eaaec87dc2c996 100644 --- a/src/workgroups-variables.el +++ b/src/workgroups-variables.el @@ -24,8 +24,8 @@ :type 'string :group 'workgroups) -(defcustom wg-load-last-workgroup nil - "Load last active, not first, workgroup from all your workgroups." +(defcustom wg-load-last-workgroup t + "Load last active (not first) workgroup from all your workgroups if it exists." :group 'workgroups :type 'boolean)