aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChong Yidong2006-09-11 02:34:05 +0000
committerChong Yidong2006-09-11 02:34:05 +0000
commitb067ddb637ea73f557012ab9e74e13d3e0ba0c7a (patch)
treef92ca2dd2b2648796b7e8496a877ce79d72db83e /src
parentc62a80738261d6817254ea13d398d3ef94a918e4 (diff)
downloademacs-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/ChangeLog5
-rw-r--r--src/keymap.c27
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 @@
12006-09-10 Chong Yidong <cyd@stupidchicken.com>
2
3 * keymap.c (Fkey_binding): Check for local keymap for mouse click
4 events.
5
12006-09-10 Kim F. Storm <storm@cua.dk> 62006-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,