diff options
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/keyboard.c | 13 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index cb5d3bacba5..8b4029bd7b3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2011-07-02 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * keyboard.c (command_loop_1): If a down-mouse event is unbound, | ||
| 4 | leave any prefix arg for the up event (Bug#1586). | ||
| 5 | |||
| 1 | 2011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org> | 6 | 2011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 2 | 7 | ||
| 3 | * lread.c (syms_of_lread): Mention single symbols defined by | 8 | * lread.c (syms_of_lread): Mention single symbols defined by |
diff --git a/src/keyboard.c b/src/keyboard.c index 3441f1dfd12..16300e6154c 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -1539,7 +1539,18 @@ command_loop_1 (void) | |||
| 1539 | message_with_string ("%s is undefined", keys, 0); | 1539 | message_with_string ("%s is undefined", keys, 0); |
| 1540 | KVAR (current_kboard, defining_kbd_macro) = Qnil; | 1540 | KVAR (current_kboard, defining_kbd_macro) = Qnil; |
| 1541 | update_mode_lines = 1; | 1541 | update_mode_lines = 1; |
| 1542 | KVAR (current_kboard, Vprefix_arg) = Qnil; | 1542 | /* If this is a down-mouse event, don't reset prefix-arg; |
| 1543 | pass it to the command run by the up event. */ | ||
| 1544 | if (EVENT_HAS_PARAMETERS (last_command_event)) | ||
| 1545 | { | ||
| 1546 | Lisp_Object breakdown | ||
| 1547 | = parse_modifiers (EVENT_HEAD (last_command_event)); | ||
| 1548 | int modifiers = XINT (XCAR (XCDR (breakdown))); | ||
| 1549 | if (!(modifiers & down_modifier)) | ||
| 1550 | KVAR (current_kboard, Vprefix_arg) = Qnil; | ||
| 1551 | } | ||
| 1552 | else | ||
| 1553 | KVAR (current_kboard, Vprefix_arg) = Qnil; | ||
| 1543 | } | 1554 | } |
| 1544 | else | 1555 | else |
| 1545 | { | 1556 | { |