summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/frame.el2
-rw-r--r--src/xdisp.c15
2 files changed, 14 insertions, 3 deletions
diff --git a/lisp/frame.el b/lisp/frame.el
index c3e28eaaeea..f4082963006 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -141,7 +141,7 @@ These supercede the values given in default-frame-alist.")
;;; Return some frame other than the current frame,
;;; creating one if neccessary. Note that the minibuffer frame, if
;;; separate, is not considered (see next-frame).
-(defun get-frame ()
+(defun get-other-frame ()
(let ((s (if (equal (next-frame (selected-frame)) (selected-frame))
(new-frame)
(next-frame (selected-frame)))))
diff --git a/src/xdisp.c b/src/xdisp.c
index cceb69584d6..b25f4011195 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -193,8 +193,13 @@ message (m, a1, a2, a3)
else if (INTERACTIVE && FRAME_MESSAGE_BUF (selected_frame))
{
#ifdef MULTI_FRAME
+ Lisp_Object minibuf_frame;
+
choose_minibuf_frame ();
- Fmake_frame_visible (WINDOW_FRAME (XWINDOW (minibuf_window)));
+ minibuf_frame = WINDOW_FRAME (XWINDOW (minibuf_window));
+ if (FRAME_VISIBLE_P (selected_frame)
+ && ! FRAME_VISIBLE_P (XFRAME (minibuf_frame)))
+ Fmake_frame_visible (WINDOW_FRAME (XWINDOW (minibuf_window)));
#endif
{
@@ -244,8 +249,13 @@ message1 (m)
else if (INTERACTIVE && FRAME_MESSAGE_BUF (selected_frame))
{
#ifdef MULTI_FRAME
+ Lisp_Object minibuf_frame;
+
choose_minibuf_frame ();
- Fmake_frame_visible (WINDOW_FRAME (XWINDOW (minibuf_window)));
+ minibuf_frame = WINDOW_FRAME (XWINDOW (minibuf_window));
+ if (FRAME_VISIBLE_P (selected_frame)
+ && ! FRAME_VISIBLE_P (XFRAME (minibuf_frame)))
+ Fmake_frame_visible (WINDOW_FRAME (XWINDOW (minibuf_window)));
#endif
echo_area_glyphs = m;
@@ -1771,6 +1781,7 @@ display_mode_line (w)
if (FRAME_IS_X (f)
&& ! FRAME_MINIBUF_ONLY_P (f)
&& w == XWINDOW (f->selected_window)
+ && XINT (Flength (Vframe_list)) > 1
&& (NILP (Fstring_equal (XBUFFER (w->buffer)->name, f->name))))
x_set_name (f, XBUFFER (w->buffer)->name, Qnil);
#endif