Re: [O] Patch: maintain window configuration when org-agenda-follow-indirect is set

2011-12-12 Thread Bastien
Dave Abrahams  writes:

> Without this change, org-agenda-follow-indirect tends to cause the
> window configration to bounce around chaotically as you move from item
> to item.

Applied, thanks.  I had to update the commit message: it should contain
an Emacs-ready ChangeLog message.

-- 
 Bastien



[O] Patch: maintain window configuration when org-agenda-follow-indirect is set

2011-10-23 Thread Dave Abrahams
>From 5adafd491f520908c8ee180c1b0d63d877fa8547 Mon Sep 17 00:00:00 2001
From: Dave Abrahams 
Date: Sun, 23 Oct 2011 14:41:44 -0400
Subject: [PATCH] Maintain stable window configuration when
 org-agenda-follow-indirect is set

Without this change, org-agenda-follow-indirect tends to cause the
window configration to bounce around chaotically as you move from item
to item.
---
 lisp/org-agenda.el |   17 +
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index e4b1ba5..639ee23 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -7168,6 +7168,23 @@ With numerical prefix arg ARG, go up to this level and then take that tree.
 With a \\[universal-argument] prefix, make a separate frame for this tree (i.e. don't
 use the dedicated frame)."
   (interactive)
+  (if (and current-prefix-arg (listp current-prefix-arg))
+  (org-agenda-do-tree-to-indirect-buffer)
+(let ((agenda-window (selected-window))
+  (indirect-window (get-buffer-window org-last-indirect-buffer)))
+  (save-window-excursion (org-agenda-do-tree-to-indirect-buffer))
+  (unwind-protect
+  (progn
+(unless indirect-window
+  (setq indirect-window (split-window agenda-window)))
+(select-window indirect-window)
+(switch-to-buffer org-last-indirect-buffer :norecord)
+(fit-window-to-buffer indirect-window))
+(select-window agenda-window)
+
+(defun org-agenda-do-tree-to-indirect-buffer ()
+  "Implements org-agenda-tree-to-indirect-buffer, but
+doesn't attempt to manage stability of the window configuration."
   (org-agenda-check-no-diary)
   (let* ((marker (or (org-get-at-bol 'org-marker)
 		 (org-agenda-error)))
-- 
1.7.6.1


-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com