aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoakim Verona2013-04-11 08:30:29 +0200
committerJoakim Verona2013-04-11 08:30:29 +0200
commit59e6916b93fa902aee35ddc7272556a53dab946e (patch)
treea8e51285d946300be9e1ca02d98843a8f5265eeb /src
parenta1002a150a8497832b98f167cb4ecd807f1684e7 (diff)
parentf07accae655f61468f3441dc48b61b5f125b601f (diff)
downloademacs-59e6916b93fa902aee35ddc7272556a53dab946e.tar.gz
emacs-59e6916b93fa902aee35ddc7272556a53dab946e.zip
auto upstream
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog12
-rw-r--r--src/frame.c16
-rw-r--r--src/keyboard.c11
3 files changed, 25 insertions, 14 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 402792b5460..ff6b9508d62 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,15 @@
12013-04-10 Eli Zaretskii <eliz@gnu.org>
2
3 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
4 garbaged only if it is not already the top frame on its TTY. This
5 prevents flickering due to constant redrawing of TTY frames when
6 there are GUI frames open in the same session. (Bug#13864)
7
82013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
9
10 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
11 of marking the idle timers directly.
12
12013-04-09 Stefan Monnier <monnier@iro.umontreal.ca> 132013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
2 14
3 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash 15 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
diff --git a/src/frame.c b/src/frame.c
index 2fe398296ed..ccd50122f50 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -834,10 +834,18 @@ do_switch_frame (Lisp_Object frame, int track, int for_deletion, Lisp_Object nor
834 834
835 if (FRAME_TERMCAP_P (XFRAME (frame)) || FRAME_MSDOS_P (XFRAME (frame))) 835 if (FRAME_TERMCAP_P (XFRAME (frame)) || FRAME_MSDOS_P (XFRAME (frame)))
836 { 836 {
837 if (FRAMEP (FRAME_TTY (XFRAME (frame))->top_frame)) 837 Lisp_Object top_frame = FRAME_TTY (XFRAME (frame))->top_frame;
838 /* Mark previously displayed frame as now obscured. */ 838
839 SET_FRAME_VISIBLE (XFRAME (FRAME_TTY (XFRAME (frame))->top_frame), 2); 839 /* Don't mark the frame garbaged and/or obscured if we are
840 SET_FRAME_VISIBLE (XFRAME (frame), 1); 840 switching to the frame that is already the top frame of that
841 TTY. */
842 if (!EQ (frame, top_frame))
843 {
844 if (FRAMEP (top_frame))
845 /* Mark previously displayed frame as now obscured. */
846 SET_FRAME_VISIBLE (XFRAME (top_frame), 2);
847 SET_FRAME_VISIBLE (XFRAME (frame), 1);
848 }
841 FRAME_TTY (XFRAME (frame))->top_frame = frame; 849 FRAME_TTY (XFRAME (frame))->top_frame = frame;
842 } 850 }
843 851
diff --git a/src/keyboard.c b/src/keyboard.c
index ab599512085..dbd3717c428 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -4208,16 +4208,7 @@ timer_start_idle (void)
4208 timer_last_idleness_start_time = timer_idleness_start_time; 4208 timer_last_idleness_start_time = timer_idleness_start_time;
4209 4209
4210 /* Mark all idle-time timers as once again candidates for running. */ 4210 /* Mark all idle-time timers as once again candidates for running. */
4211 for (timers = Vtimer_idle_list; CONSP (timers); timers = XCDR (timers)) 4211 call0 (intern ("internal-timer-start-idle"));
4212 {
4213 Lisp_Object timer;
4214
4215 timer = XCAR (timers);
4216
4217 if (!VECTORP (timer) || ASIZE (timer) != 9)
4218 continue;
4219 ASET (timer, 0, Qnil);
4220 }
4221} 4212}
4222 4213
4223/* Record that Emacs is no longer idle, so stop running idle-time timers. */ 4214/* Record that Emacs is no longer idle, so stop running idle-time timers. */