]> git.eshelyaron.com Git - emacs.git/commitdiff
(Qdeactivate_mark): New var.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 9 Apr 2008 03:29:46 +0000 (03:29 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 9 Apr 2008 03:29:46 +0000 (03:29 +0000)
(command_loop_1): Use it to call `deactivate-mark'.
(syms_of_keyboard): Initialize it.

src/ChangeLog
src/keyboard.c

index 68e50dd376fdefcf283b3e4712a91eb128fb4d50..81106ff2417c459ed2202d5253d8541c4dca155a 100644 (file)
@@ -1,5 +1,9 @@
 2008-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * keyboard.c (Qdeactivate_mark): New var.
+       (command_loop_1): Use it to call `deactivate-mark'.
+       (syms_of_keyboard): Initialize it.
+
        * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
        to another frame.
        * frame.c (do_switch_frame): Refine the top_frame/async_visible code.
index 54a626268a268953e4b953d008fa693437b1d960..bb65acbbde732f8e0b49e68a82c24407556adadc 100644 (file)
@@ -397,6 +397,7 @@ Lisp_Object Vinput_method_previous_message;
 
 /* Non-nil means deactivate the mark at end of this command.  */
 Lisp_Object Vdeactivate_mark;
+Lisp_Object Qdeactivate_mark;
 
 /* Menu bar specified in Lucid Emacs fashion.  */
 
@@ -1977,17 +1978,8 @@ command_loop_1 ()
          else if (EQ (Vtransient_mark_mode, Qonly))
            Vtransient_mark_mode = Qidentity;
 
-         if (!NILP (Vdeactivate_mark) && !NILP (Vtransient_mark_mode))
-           {
-             /* We could also call `deactivate'mark'.  */
-             if (EQ (Vtransient_mark_mode, Qlambda))
-               Vtransient_mark_mode = Qnil;
-             else
-               {
-                 current_buffer->mark_active = Qnil;
-                 call1 (Vrun_hooks, intern ("deactivate-mark-hook"));
-               }
-           }
+         if (!NILP (Vdeactivate_mark))
+           call0 (Qdeactivate_mark);
          else if (current_buffer != prev_buffer || MODIFF != prev_modiff)
            call1 (Vrun_hooks, intern ("activate-mark-hook"));
        }
@@ -2039,6 +2031,7 @@ adjust_point_for_property (last_pt, modified)
      can't be usefully combined anyway.  */
   while (check_composition || check_display || check_invisible)
     {
+      /* FIXME: check `intangible'.  */
       if (check_composition
          && PT > BEGV && PT < ZV
          && get_property_and_range (PT, Qcomposition, &val, &beg, &end, Qnil)
@@ -12283,6 +12276,8 @@ The command loop sets this to nil before each command,
 and tests the value when the command returns.
 Buffer modification stores t in this variable.  */);
   Vdeactivate_mark = Qnil;
+  Qdeactivate_mark = intern ("deactivate-mark");
+  staticpro (&Qdeactivate_mark);
 
   DEFVAR_LISP ("command-hook-internal", &Vcommand_hook_internal,
               doc: /* Temporary storage of pre-command-hook or post-command-hook.  */);