summaryrefslogtreecommitdiff
path: root/src/keyboard.c
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2001-03-15 16:31:51 +0000
committerGerd Moellmann <gerd@gnu.org>2001-03-15 16:31:51 +0000
commitd0bbfc999a2c2375d2f56ea28b38efcd5ce33c27 (patch)
treec15f37fb3f5c863f95333bbcc2cbde8c42102f34 /src/keyboard.c
parent03d1a1896654b1014db6e7da740b660cb6d81cc0 (diff)
downloademacs-d0bbfc999a2c2375d2f56ea28b38efcd5ce33c27.tar.gz
(timer_check): Preserve the value of deactivate-mark.
(command_loop_1): Undo last change.
Diffstat (limited to 'src/keyboard.c')
-rw-r--r--src/keyboard.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 02d923f33d3..3b774ea2753 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -1479,10 +1479,6 @@ command_loop_1 ()
this variable differently. */
Vdisable_point_adjustment = Qnil;
- /* Process filters and timers may have messed with deactivate-mark.
- reset it before we execute the command. */
- Vdeactivate_mark = Qnil;
-
/* Execute the command. */
Vthis_command = cmd;
@@ -4021,17 +4017,18 @@ timer_check (do_it_now)
if (NILP (vector[0]))
{
int was_locked = single_kboard;
- int count = specpdl_ptr - specpdl;
+ int count = BINDING_STACK_SIZE ();
+ Lisp_Object old_deactivate_mark = Vdeactivate_mark;
/* Mark the timer as triggered to prevent problems if the lisp
code fails to reschedule it right. */
vector[0] = Qt;
specbind (Qinhibit_quit, Qt);
-
+
call1 (Qtimer_event_handler, chosen_timer);
+ Vdeactivate_mark = old_deactivate_mark;
timers_run++;
-
unbind_to (count, Qnil);
/* Resume allowing input from any kboard, if that was true before. */