From: Chong Yidong Date: Sun, 17 Jun 2012 10:11:39 +0000 (+0800) Subject: Optimization to avoid redisplaying hidden terminal frames. X-Git-Tag: emacs-24.2.90~1199^2~444 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=96a313a1daea14c0b125857f2775aae911045349;p=emacs.git Optimization to avoid redisplaying hidden terminal frames. * xdisp.c (redisplay_internal): No need to redisplay terminal frames that are not on top. --- diff --git a/src/ChangeLog b/src/ChangeLog index ba029611cdb..309f4447dbc 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-06-17 Chong Yidong + + * xdisp.c (redisplay_internal): No need to redisplay terminal + frames that are not on top. + 2012-06-17 Troels Nielsen * process.c (make_process): Initialize write_queue. diff --git a/src/xdisp.c b/src/xdisp.c index cd5f03d34ad..f371346589b 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13317,6 +13317,12 @@ redisplay_internal (void) { struct frame *f = XFRAME (frame); + /* We don't have to do anything for unselected terminal + frames. */ + if ((FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f)) + && !EQ (FRAME_TTY (f)->top_frame, frame)) + continue; + if (FRAME_WINDOW_P (f) || FRAME_TERMCAP_P (f) || f == sf) { if (! EQ (frame, selected_frame))