Merge pull request #155 from vanicat/t/reconcile_and_windows

T/reconcile and windows
This commit is contained in:
Craig Earls 2013-02-13 09:03:58 -08:00
commit 822970a7ae

View file

@ -277,17 +277,17 @@
;; when the buffer point is moved and recentered. If they aren't ;; when the buffer point is moved and recentered. If they aren't
;; strange things happen. ;; strange things happen.
(let (let ((recon-window (get-buffer-window (get-buffer ledger-recon-buffer-name))))
((recon-window (get-buffer-window (get-buffer ledger-recon-buffer-name)))) (when recon-window
(fit-window-to-buffer recon-window) (fit-window-to-buffer recon-window)
(with-current-buffer buf (with-current-buffer buf
(select-window (get-buffer-window buf)) (select-window (get-buffer-window buf))
(goto-char (point-max)) (goto-char (point-max))
(recenter -1)) (recenter -1))
(select-window recon-window) (select-window recon-window)
(add-hook 'post-command-hook 'ledger-reconcile-track-xact nil t) (ledger-reconcile-visit t))
(ledger-reconcile-visit t)))) (add-hook 'post-command-hook 'ledger-reconcile-track-xact nil t))))
(defun ledger-reconcile-track-xact () (defun ledger-reconcile-track-xact ()
(if (member this-command (list 'next-line (if (member this-command (list 'next-line
@ -298,6 +298,15 @@
(save-excursion (save-excursion
(ledger-reconcile-visit t))))) (ledger-reconcile-visit t)))))
(defun ledger-reconcile-open-windows (buf rbuf)
"Ensure that the reconcile buffer has its windows
Spliting the windows of BUF if needed"
(if ledger-reconcile-force-window-bottom
;;create the *Reconcile* window directly below the ledger buffer.
(set-window-buffer (split-window (get-buffer-window buf) nil nil) rbuf)
(pop-to-buffer rbuf)))
(defun ledger-reconcile (account) (defun ledger-reconcile (account)
(interactive "sAccount to reconcile: ") (interactive "sAccount to reconcile: ")
(let ((buf (current-buffer)) (let ((buf (current-buffer))
@ -316,6 +325,8 @@
(if ledger-fold-on-reconcile (if ledger-fold-on-reconcile
(ledger-occur-change-regex account ledger-buf)) (ledger-occur-change-regex account ledger-buf))
(set-buffer (get-buffer ledger-recon-buffer-name)) (set-buffer (get-buffer ledger-recon-buffer-name))
(unless (get-buffer-window rbuf)
(ledger-reconcile-open-windows buf rbuf))
(ledger-reconcile-refresh)) (ledger-reconcile-refresh))
(progn ;; no recon-buffer, starting from scratch. (progn ;; no recon-buffer, starting from scratch.
@ -323,15 +334,8 @@
(if ledger-fold-on-reconcile (if ledger-fold-on-reconcile
(ledger-occur-mode account buf)) (ledger-occur-mode account buf))
(with-current-buffer (with-current-buffer (get-buffer-create ledger-recon-buffer-name)
(if ledger-reconcile-force-window-bottom (ledger-reconcile-open-windows buf (current-buffer))
;create the *Reconcile* window directly below the ledger buffer.
(progn
(set-window-buffer
(split-window (get-buffer-window buf) nil nil)
(get-buffer-create ledger-recon-buffer-name))
(get-buffer ledger-recon-buffer-name))
(pop-to-buffer (get-buffer-create ledger-recon-buffer-name)))
(ledger-reconcile-mode) (ledger-reconcile-mode)
(set (make-local-variable 'ledger-buf) buf) (set (make-local-variable 'ledger-buf) buf)
(set (make-local-variable 'ledger-acct) account) (set (make-local-variable 'ledger-acct) account)