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
This commit is contained in:
parent
c0bf77531e
commit
90d49b7fb2
2 changed files with 20 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
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
|
||||
|
|
Loading…
Add table
Reference in a new issue