diff options
author | Chong Yidong <[email protected]> | 2012-06-17 18:11:39 +0800 |
---|---|---|
committer | Chong Yidong <[email protected]> | 2012-06-17 18:11:39 +0800 |
commit | 96a313a1daea14c0b125857f2775aae911045349 (patch) | |
tree | bb6100c0caf1cdec71d37c1c12b4a940b9b743c9 | |
parent | 20ca2e9451e7dbae9b24bf759c4374a674c9270a (diff) |
Optimization to avoid redisplaying hidden terminal frames.
* xdisp.c (redisplay_internal): No need to redisplay terminal
frames that are not on top.
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/xdisp.c | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index ba029611cd..309f4447db 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-06-17 Chong Yidong <[email protected]> + + * xdisp.c (redisplay_internal): No need to redisplay terminal + frames that are not on top. + 2012-06-17 Troels Nielsen <[email protected]> * process.c (make_process): Initialize write_queue. diff --git a/src/xdisp.c b/src/xdisp.c index cd5f03d34a..f371346589 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)) |