]> git.eshelyaron.com Git - emacs.git/commitdiff
(timer_check): Preserve the value of deactivate-mark.
authorGerd Moellmann <gerd@gnu.org>
Thu, 15 Mar 2001 16:31:51 +0000 (16:31 +0000)
committerGerd Moellmann <gerd@gnu.org>
Thu, 15 Mar 2001 16:31:51 +0000 (16:31 +0000)
(command_loop_1): Undo last change.

src/ChangeLog
src/keyboard.c

index dfcfaa8dde2db32b5aaa691a5f3a3684fefe6c3e..da16e6e58dad1d8bfd084f426e240290371c4ae0 100644 (file)
@@ -1,5 +1,8 @@
 2001-03-15  Gerd Moellmann  <gerd@gnu.org>
 
+       * keyboard.c (timer_check): Preserve the value of deactivate-mark.
+       (command_loop_1): Undo last change.
+
        * xterm.c (fast_find_position): Return the correct vpos.
 
        * data.c (store_symval_forwarding): Add parameter BUF.  If BUF is
index 02d923f33d382881e3f70bd5c842e0d68f451949..3b774ea27532d6e29ef8d8eb86abbaac3187a3df 100644 (file)
@@ -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.  */