OH man, that was a little harder than I thought it would be. Does `make test` randomly checkout a new branch or something?
This patch adds a new long-winded variable `org-src-restore-window-config`, t by default, which if set to `nil` will inhibit restoration of previous window config in `org-edit-src-exit`. I'm afraid I don't really understand the tests and I learn so slowly that I don't have time to keep trying today. But hopefully this simple patch is adequate. I also wrote a changelog entry in my git commit msg, which is here: Make restoration of window config optional on exit from src buffer * org-srce.el (org-src-restore-window-config, org-exit-from-src): New variable org-src-restore-window-config allows user to opt out of restoring window config when exiting from source buffer with org-exit-from-src. On Fri, Nov 23, 2018 at 1:31 AM Eric S Fraga <esfli...@gmail.com> wrote: > On Thursday, 22 Nov 2018 at 14:09, Matt Price wrote: > > SO far this is working for me but I wondered whether other people would > > similarly want to change this behaviour and I should put together a > proper > > proposal & patch? > > Yes, please. This is becoming more and more necessary as monitors get > larger. I am using a very wide (and very nice) 38" monitor at work. My > window configuration within a single frame can get quite > complex. Having org (and other tools) change this configuration can be > quite annoying. > > -- > Eric S Fraga via Emacs 27.0.50, Org release_9.1.14-1035-gfeb442 >
From 7adeca638eff962770874078822e2a3d23430b2b Mon Sep 17 00:00:00 2001 From: Matt Price <matt.pr...@utoronto.ca> Date: Fri, 23 Nov 2018 09:16:40 -0500 Subject: [PATCH] Make restoration of window config optional on exit from src buffer * org-srce.el (org-src-restore-window-config, org-exit-from-src): New variable org-src-rewtore-window-config allows user to opt out of restoring windor config when exiting from source buffer with org-exit-from-src. --- lisp/org-src.el | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lisp/org-src.el b/lisp/org-src.el index 12163156f..386bad413 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -166,6 +166,14 @@ other-frame Use `switch-to-buffer-other-frame' to display edit buffer. (const other-window) (const reorganize-frame))) +(defcustom org-src-restore-saved-window-config t + "Whether to restore windows to previous configuration. +When non-nil (default), on exit from a source buffer, org will +try to restore the window configuration that was active when +the source buffer was created." + :group 'org-edit-structure + :type 'boolean) + (defvar org-src-mode-hook nil "Hook run after Org switched a source code snippet to its Emacs mode. \\<org-mode-map> @@ -1173,8 +1181,8 @@ Throw an error if there is no such buffer." ;; Clean up left-over markers and restore window configuration. (set-marker beg nil) (set-marker end nil) - (when org-src--saved-temp-window-config - (set-window-configuration org-src--saved-temp-window-config) + (when (and org-src--saved-temp-window-config org-src-restore-saved-window-config) + (set-window-configuration org-src--saved-temp-window-config) (setq org-src--saved-temp-window-config nil)))) -- 2.19.1