Commit f009190a authored by Eli Zaretskii's avatar Eli Zaretskii

Fix bug #13864 with flickering of TTY frames in an emacslient session.

 src/frame.c (do_switch_frame): Mark the TTY frame we switch to as
 garbaged only if it is not already the top frame on its TTY.  This
 prevents flickering due to constant redrawing of TTY frames when
 there are GUI frames open in the same session.
parent da3cda2d
2013-04-10 Eli Zaretskii <eliz@gnu.org>
* frame.c (do_switch_frame): Mark the TTY frame we switch to as
garbaged only if it is not already the top frame on its TTY. This
prevents flickering due to constant redrawing of TTY frames when
there are GUI frames open in the same session. (Bug#13864)
2013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
* keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
......
......@@ -834,10 +834,18 @@ do_switch_frame (Lisp_Object frame, int track, int for_deletion, Lisp_Object nor
if (FRAME_TERMCAP_P (XFRAME (frame)) || FRAME_MSDOS_P (XFRAME (frame)))
{
if (FRAMEP (FRAME_TTY (XFRAME (frame))->top_frame))
/* Mark previously displayed frame as now obscured. */
SET_FRAME_VISIBLE (XFRAME (FRAME_TTY (XFRAME (frame))->top_frame), 2);
SET_FRAME_VISIBLE (XFRAME (frame), 1);
Lisp_Object top_frame = FRAME_TTY (XFRAME (frame))->top_frame;
/* Don't mark the frame garbaged and/or obscured if we are
switching to the frame that is already the top frame of that
TTY. */
if (!EQ (frame, top_frame))
{
if (FRAMEP (top_frame))
/* Mark previously displayed frame as now obscured. */
SET_FRAME_VISIBLE (XFRAME (top_frame), 2);
SET_FRAME_VISIBLE (XFRAME (frame), 1);
}
FRAME_TTY (XFRAME (frame))->top_frame = frame;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment