emacs make-frame在恢复之前不显示当前显示的帧

时间:2012-12-24 01:07:05

标签: emacs elisp

我遇到了麻烦。我想按 F11 并让Emacs创建一个新帧,然后设置其大小,然后启动gnus。在此期间,我希望它将新框架带到前面。我似乎无法想出最后一部分。这是我的代码减去带到前面的部分:

(defun launch_gnus_new_frame ()
  "Open a new frame and then launch gnus"
  (interactive)
  (let* (new_frame_gnus (new-frame))
    (switch-to-buffer-other-frame new_frame_gnus)
    (if window-system
        (set-frame-size (selected-frame) 101 90))
    (gnus)))

(global-set-key [f11] 'launch_gnus_new_frame)

任何想法都将不胜感激。谢谢!

编辑:这是我目前的代码。

(defun launch_gnus_new_frame ()
  "Open a new frame and then launch gnus"
  (interactive)
  (let ((gmail_frame (make-frame '((name . "gmail") (window-system . x)))))
    (select-frame-set-input-focus gmail_frame)
    (if window-system
        (set-frame-size (selected-frame) 101 90))
    (gnus)))

(global-set-key [f11] 'launch_gnus_new_frame)

我已经确定已经创建了新帧,并且我的观点位于运行gnus的新缓冲区中。但是,在我最小化并恢复之前,框架不在我的显示器上。如果我运行 M-x make-frame我会得到相同的行为。我正在使用Cinnamon桌面运行Linux Mint。

1 个答案:

答案 0 :(得分:1)

查看x-focus-frame功能。

(when (fboundp 'x-focus-frame)
  (x-focus-frame nil))