diff options
| author | Chong Yidong | 2006-09-11 02:34:05 +0000 |
|---|---|---|
| committer | Chong Yidong | 2006-09-11 02:34:05 +0000 |
| commit | b067ddb637ea73f557012ab9e74e13d3e0ba0c7a (patch) | |
| tree | f92ca2dd2b2648796b7e8496a877ce79d72db83e /src | |
| parent | c62a80738261d6817254ea13d398d3ef94a918e4 (diff) | |
| download | emacs-b067ddb637ea73f557012ab9e74e13d3e0ba0c7a.tar.gz emacs-b067ddb637ea73f557012ab9e74e13d3e0ba0c7a.zip | |
* keymap.c (Fkey_binding): Check for local keymap for mouse click
events.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/keymap.c | 27 |
2 files changed, 32 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 2bc50904caa..a2fa51db1b2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2006-09-10 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * keymap.c (Fkey_binding): Check for local keymap for mouse click | ||
| 4 | events. | ||
| 5 | |||
| 1 | 2006-09-10 Kim F. Storm <storm@cua.dk> | 6 | 2006-09-10 Kim F. Storm <storm@cua.dk> |
| 2 | 7 | ||
| 3 | * keyboard.c (Finput_pending_p): Check Vunread_input_method_events | 8 | * keyboard.c (Finput_pending_p): Check Vunread_input_method_events |
diff --git a/src/keymap.c b/src/keymap.c index 4871179c420..1d854f77b4c 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -1576,6 +1576,33 @@ is non-nil, `key-binding' returns the unmapped command. */) | |||
| 1576 | 1576 | ||
| 1577 | GCPRO1 (key); | 1577 | GCPRO1 (key); |
| 1578 | 1578 | ||
| 1579 | #ifdef HAVE_MOUSE | ||
| 1580 | if (VECTORP (key) | ||
| 1581 | && ASIZE (key) > 0 | ||
| 1582 | && CONSP (AREF (key, 0)) | ||
| 1583 | && SYMBOLP (XCAR (AREF (key, 0))) | ||
| 1584 | && CONSP (XCDR (AREF (key, 0)))) | ||
| 1585 | { | ||
| 1586 | Lisp_Object map, obj, pos = XCAR (XCDR (AREF (key, 0))); | ||
| 1587 | |||
| 1588 | if (XINT (Flength (pos)) == 10 && INTEGERP (XCAR (XCDR (pos)))) | ||
| 1589 | { | ||
| 1590 | obj = Fnth (make_number(4), pos); | ||
| 1591 | map = Fget_char_property (XCAR (XCDR (pos)), | ||
| 1592 | Qkeymap, | ||
| 1593 | NILP (obj) ? | ||
| 1594 | Fwindow_buffer (XCAR (pos)) | ||
| 1595 | : XCAR (obj)); | ||
| 1596 | if (!NILP (Fkeymapp (map))) | ||
| 1597 | { | ||
| 1598 | value = Flookup_key (map, key, accept_default); | ||
| 1599 | if (! NILP (value) && !INTEGERP (value)) | ||
| 1600 | goto done; | ||
| 1601 | } | ||
| 1602 | } | ||
| 1603 | } | ||
| 1604 | #endif /* HAVE_MOUSE */ | ||
| 1605 | |||
| 1579 | if (!NILP (current_kboard->Voverriding_terminal_local_map)) | 1606 | if (!NILP (current_kboard->Voverriding_terminal_local_map)) |
| 1580 | { | 1607 | { |
| 1581 | value = Flookup_key (current_kboard->Voverriding_terminal_local_map, | 1608 | value = Flookup_key (current_kboard->Voverriding_terminal_local_map, |