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

Reply via email to