diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 11 | ||||
| -rw-r--r-- | src/dispextern.h | 2 | ||||
| -rw-r--r-- | src/keyboard.c | 15 |
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 @@ | |||
| 1 | 2012-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 | |||
| 6 | 2012-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 | |||
| 1 | 2012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr> | 12 | 2012-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; | |||
| 241 | Time last_event_timestamp; | 241 | Time last_event_timestamp; |
| 242 | 242 | ||
| 243 | static Lisp_Object Qx_set_selection, Qhandle_switch_frame; | 243 | static Lisp_Object Qx_set_selection, Qhandle_switch_frame; |
| 244 | static Lisp_Object Qhandle_select_window; | ||
| 244 | Lisp_Object QPRIMARY; | 245 | Lisp_Object QPRIMARY; |
| 245 | 246 | ||
| 246 | static Lisp_Object Qself_insert_command; | 247 | static 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. | ||
| 12314 | Normally, if `select-active-regions' is non-nil and the mark remains | ||
| 12315 | active after a command (i.e. the mark was not deactivated), the Emacs | ||
| 12316 | command loop sets the selection to the text in the region. However, | ||
| 12317 | if 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 |