[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: message buffer
Hi Ron,
many thanks for this code. It did not work right away on emacs 23.1, I
needed the following change in zoom-message (just at the beginning of
the function):
(let ((pop-up-windows nil)
(p (selected-frame))
(b (buffer-name))
(f (make-frame)))
(select-frame f)
(pop-to-buffer b)
setting pop-up-windows to nil avoids the horizontal splitting of the
window in the new frame.
many thanks,
Rodrigo
> Rodrigo Amestica wrote:
>>
>> Hi,
>>
>> in my configuration (I'm not sure this is always like this) the message buffer
>> is reported as a Mime-View. Is there any way to popup the current message in the
>> buffer to its own frame? I could not find the option within wl. Then I thought
>> that emacs should already provide a function to move a given buffer to its own
>> frame (e.g. C-x 52), however the message buffer is not listed as a buffer (C-x
>> C-b) and here I realized that I'm at lost.
>>
>> Is there any way to pop up a copy of the message buffer to its own frame?
> Try this out:
> ;; Message Zoom
> ; Press z on the summary line or in a mime-view buffer to see the
> ; message in its own frame
> (defun unzoom-message ()
> (interactive)
> (really-local-set-key "q" 'mime-preview-quit)
> (let ((return-to-summary zoom-return-to-summary))
> (if (frame-live-p zoom-frame)
> (progn
> (focus-frame zoom-prev-frame)
> (delete-frame zoom-frame)
> (if return-to-summary
> (mime-preview-quit)))
> (mime-preview-quit))))
> (defun zoom-message (&optional return-to-summary)
> (interactive)
> (let ((b (buffer-name))
> (p (selected-frame))
> (f (make-frame)))
> (focus-frame f)
> (switch-to-buffer b)
> (make-local-variable 'zoom-frame)
> (setq zoom-frame f)
> (make-local-variable 'zoom-prev-frame)
> (setq zoom-prev-frame p)
> (make-local-variable 'zoom-return-to-summary)
> (setq zoom-return-to-summary return-to-summary)
> (really-local-set-key "q" 'unzoom-message)))
> (add-hook 'mime-view-mode-hook
> '(lambda ()
> (local-set-key "z" 'zoom-message)))
> (defun wl-summary-zoom-message ()
> (interactive)
> (if (not (wl-summary-message-number))
> (message "No message to zoom")
> (wl-summary-jump-to-current-message)
> (zoom-message t)))
> (define-key wl-summary-mode-map "z" 'wl-summary-zoom-message)
> This relies on really-local-set-key, an invention which does what I
> think local-set-key *should* do -- set a key binding in the current
> buffer only:
> (defun use-really-local-map ()
> (let* ((old-keymap (current-local-map))
> (new-keymap (if old-keymap
> (copy-keymap old-keymap)
> (make-sparse-keymap))))
> (use-local-map new-keymap)))
> (defun really-local-set-key (key command)
> (use-really-local-map)
> (local-set-key key command))
> (defun really-local-unset-key (key)
> (use-really-local-map)
> (local-unset-key key))
> --
> Ron Isaacson
> Morgan Stanley
> ron.isaacson@morganstanley.com / (212) 276-1349