aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoakim Verona2012-03-26 23:32:56 +0200
committerJoakim Verona2012-03-26 23:32:56 +0200
commite28095d4fe09534832c171408fc6520b7d25957b (patch)
tree142e748041268ca6d4e7780f69b931528195176f /src
parent75da28a3845b9dfa4e730cfa19c14edc52cbb222 (diff)
parentf9210e18be29dd83fab9f4e260a29f6e6e5f0c62 (diff)
downloademacs-e28095d4fe09534832c171408fc6520b7d25957b.tar.gz
emacs-e28095d4fe09534832c171408fc6520b7d25957b.zip
upstream
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog11
-rw-r--r--src/dispextern.h2
-rw-r--r--src/keyboard.c15
3 files changed, 26 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 71bfec1f061..81448982563 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,14 @@
12012-03-26 Kenichi Handa <handa@m17n.org>
2
3 * dispextern.h (struct glyph): Fix previous change. Change the
4 bit length of glyphless.ch to 25 (Bug#11082).
5
62012-03-26 Chong Yidong <cyd@gnu.org>
7
8 * keyboard.c (Vselection_inhibit_update_commands): New variable.
9 (command_loop_1): Use it; inhibit selection update for
10 handle-select-window too (Bug#8996).
11
12012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr> 122012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
2 13
3 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific 14 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific
diff --git a/src/dispextern.h b/src/dispextern.h
index af5a3e836d7..e45d4b1e558 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -461,7 +461,7 @@ struct glyph
461 /* Length of acronym or hexadecimal code string (at most 8). */ 461 /* Length of acronym or hexadecimal code string (at most 8). */
462 unsigned len : 4; 462 unsigned len : 4;
463 /* Character to display. Actually we need only 22 bits. */ 463 /* Character to display. Actually we need only 22 bits. */
464 unsigned ch : 22; 464 unsigned ch : 25;
465 } glyphless; 465 } glyphless;
466 466
467 /* Used to compare all bit-fields above in one step. */ 467 /* Used to compare all bit-fields above in one step. */
diff --git a/src/keyboard.c b/src/keyboard.c
index 6417d97ece3..359e6cd692e 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -241,6 +241,7 @@ Lisp_Object internal_last_event_frame;
241Time last_event_timestamp; 241Time last_event_timestamp;
242 242
243static Lisp_Object Qx_set_selection, Qhandle_switch_frame; 243static Lisp_Object Qx_set_selection, Qhandle_switch_frame;
244static Lisp_Object Qhandle_select_window;
244Lisp_Object QPRIMARY; 245Lisp_Object QPRIMARY;
245 246
246static Lisp_Object Qself_insert_command; 247static Lisp_Object Qself_insert_command;
@@ -1650,7 +1651,8 @@ command_loop_1 (void)
1650 ? EQ (CAR_SAFE (Vtransient_mark_mode), Qonly) 1651 ? EQ (CAR_SAFE (Vtransient_mark_mode), Qonly)
1651 : (!NILP (Vselect_active_regions) 1652 : (!NILP (Vselect_active_regions)
1652 && !NILP (Vtransient_mark_mode))) 1653 && !NILP (Vtransient_mark_mode)))
1653 && !EQ (Vthis_command, Qhandle_switch_frame)) 1654 && NILP (Fmemq (Vthis_command,
1655 Vselection_inhibit_update_commands)))
1654 { 1656 {
1655 EMACS_INT beg = 1657 EMACS_INT beg =
1656 XINT (Fmarker_position (BVAR (current_buffer, mark))); 1658 XINT (Fmarker_position (BVAR (current_buffer, mark)));
@@ -11669,6 +11671,7 @@ syms_of_keyboard (void)
11669 DEFSYM (Qx_set_selection, "x-set-selection"); 11671 DEFSYM (Qx_set_selection, "x-set-selection");
11670 DEFSYM (QPRIMARY, "PRIMARY"); 11672 DEFSYM (QPRIMARY, "PRIMARY");
11671 DEFSYM (Qhandle_switch_frame, "handle-switch-frame"); 11673 DEFSYM (Qhandle_switch_frame, "handle-switch-frame");
11674 DEFSYM (Qhandle_select_window, "handle-select-window");
11672 11675
11673 DEFSYM (Qinput_method_function, "input-method-function"); 11676 DEFSYM (Qinput_method_function, "input-method-function");
11674 DEFSYM (Qinput_method_exit_on_first_char, "input-method-exit-on-first-char"); 11677 DEFSYM (Qinput_method_exit_on_first_char, "input-method-exit-on-first-char");
@@ -12305,6 +12308,16 @@ text in the region before modifying the buffer. The next
12305`deactivate-mark' call uses this to set the window selection. */); 12308`deactivate-mark' call uses this to set the window selection. */);
12306 Vsaved_region_selection = Qnil; 12309 Vsaved_region_selection = Qnil;
12307 12310
12311 DEFVAR_LISP ("selection-inhibit-update-commands",
12312 Vselection_inhibit_update_commands,
12313 doc: /* List of commands which should not update the selection.
12314Normally, if `select-active-regions' is non-nil and the mark remains
12315active after a command (i.e. the mark was not deactivated), the Emacs
12316command loop sets the selection to the text in the region. However,
12317if the command is in this list, the selection is not updated. */);
12318 Vselection_inhibit_update_commands
12319 = list2 (Qhandle_switch_frame, Qhandle_select_window);
12320
12308 DEFVAR_LISP ("debug-on-event", 12321 DEFVAR_LISP ("debug-on-event",
12309 Vdebug_on_event, 12322 Vdebug_on_event,
12310 doc: /* Enter debugger on this event. When Emacs 12323 doc: /* Enter debugger on this event. When Emacs