Commit 90d49b7f authored by Chong Yidong's avatar Chong Yidong

New variable selection-inhibit-update-commands, for inhibiting selection updates.

* keyboard.c (Vselection_inhibit_update_commands): New variable.
(command_loop_1): Use it; inhibit selection update for
handle-select-window too.

Fixes: debbugs:8996
parent c0bf7753
2012-03-26 Chong Yidong <cyd@gnu.org>
* keyboard.c (Vselection_inhibit_update_commands): New variable.
(command_loop_1): Use it; inhibit selection update for
handle-select-window too (Bug#8996).
2012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
* w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific
......
......@@ -241,6 +241,7 @@ Lisp_Object internal_last_event_frame;
Time last_event_timestamp;
static Lisp_Object Qx_set_selection, Qhandle_switch_frame;
static Lisp_Object Qhandle_select_window;
Lisp_Object QPRIMARY;
static Lisp_Object Qself_insert_command;
......@@ -1647,7 +1648,8 @@ command_loop_1 (void)
? EQ (CAR_SAFE (Vtransient_mark_mode), Qonly)
: (!NILP (Vselect_active_regions)
&& !NILP (Vtransient_mark_mode)))
&& !EQ (Vthis_command, Qhandle_switch_frame))
&& NILP (Fmemq (Vthis_command,
Vselection_inhibit_update_commands)))
{
EMACS_INT beg =
XINT (Fmarker_position (BVAR (current_buffer, mark)));
......@@ -11649,6 +11651,7 @@ syms_of_keyboard (void)
DEFSYM (Qx_set_selection, "x-set-selection");
DEFSYM (QPRIMARY, "PRIMARY");
DEFSYM (Qhandle_switch_frame, "handle-switch-frame");
DEFSYM (Qhandle_select_window, "handle-select-window");
DEFSYM (Qinput_method_function, "input-method-function");
DEFSYM (Qinput_method_exit_on_first_char, "input-method-exit-on-first-char");
......@@ -12285,6 +12288,16 @@ text in the region before modifying the buffer. The next
`deactivate-mark' call uses this to set the window selection. */);
Vsaved_region_selection = Qnil;
DEFVAR_LISP ("selection-inhibit-update-commands",
Vselection_inhibit_update_commands,
doc: /* List of commands which should not update the selection.
Normally, if `select-active-regions' is non-nil and the mark remains
active after a command (i.e. the mark was not deactivated), the Emacs
command loop sets the selection to the text in the region. However,
if the command is in this list, the selection is not updated. */);
Vselection_inhibit_update_commands
= list2 (Qhandle_switch_frame, Qhandle_select_window);
DEFVAR_LISP ("debug-on-event",
Vdebug_on_event,
doc: /* Enter debugger on this event. When Emacs
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment