(global-set-key [?\C-c ?v ?i] 'vm-visit-imap-folder)
(global-set-key [?\C-c ?v ?m] 'vm-visit-folder)
(global-set-key [?\C-c ?v ?v] 'mdw-auto-revert)
+ (global-set-key [?\C-c ?w ? ] 'mdw-designate-window)
(global-set-key [?\C-c ?w ?b] 'w3m-bookmark-view)
(global-set-key [?\C-c ?w ?c] 'mdw-set-frame-colour)
(global-set-key [?\C-c ?w ?d] 'mdw-divvy-window)
;; Some hacks to do with window placement.
+(defvar mdw-designated-window nil
+ "The window chosen by `mdw-designate-window', or nil.")
+
+(defun mdw-designate-window (cancel)
+ "Use the selected window for the next pop-up buffer.
+With a prefix argument, clear the designated window."
+ (interactive "P")
+ (cond (cancel
+ (setq mdw-designated-window nil)
+ (message "Window designation cleared."))
+ (t
+ (setq mdw-designated-window (selected-window))
+ (message "Window designated."))))
+
+(defun mdw-display-buffer-in-designated-window (buffer alist)
+ "Display function to use the designated window."
+ (prog1 mdw-designated-window
+ (when mdw-designated-window
+ (select-window mdw-designated-window)
+ (switch-to-buffer buffer nil t))
+ (setq mdw-designated-window nil)))
+
+(setq display-buffer-base-action
+ (let* ((action display-buffer-base-action)
+ (funcs (car action))
+ (alist (cdr action)))
+ (cons (cons 'mdw-display-buffer-in-designated-window funcs) alist)))
+
(defun mdw-clobber-other-windows-showing-buffer (buffer-or-name)
"Arrange that no windows on other frames are showing BUFFER-OR-NAME."
(interactive "bBuffer: ")