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.
This commit is contained in:
parent
da3cda2d10
commit
f009190abc
2 changed files with 19 additions and 4 deletions
|
|
@ -1,3 +1,10 @@
|
|||
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
|
||||
|
|
|
|||
16
src/frame.c
16
src/frame.c
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue