[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master c41ea047a43 1/2: Fix mouse-2 clicks on mode line and header line
From: |
Eli Zaretskii |
Subject: |
master c41ea047a43 1/2: Fix mouse-2 clicks on mode line and header line |
Date: |
Sun, 12 Jan 2025 01:25:29 -0500 (EST) |
branch: master
commit c41ea047a434710c4b7bc8280695c83fbe5fff35
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>
Fix mouse-2 clicks on mode line and header line
* src/keymap.c (Fcurrent_active_maps): For clicks on mode-line and
header-line, always override the keymaps at buffer position.
(Bug#75219)
---
src/keymap.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/keymap.c b/src/keymap.c
index c0f49a7c106..733d8d16031 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1740,17 +1740,27 @@ like in the respective argument of `key-binding'. */)
if (CONSP (string) && STRINGP (XCAR (string)))
{
Lisp_Object pos = XCDR (string);
+ Lisp_Object pos_area = POSN_POSN (position);
string = XCAR (string);
if (FIXNUMP (pos)
&& XFIXNUM (pos) >= 0
&& XFIXNUM (pos) < SCHARS (string))
{
- Lisp_Object map = Fget_text_property (pos, Qlocal_map,
string);
- if (!NILP (map))
+ Lisp_Object map = Fget_text_property (pos, Qlocal_map,
+ string);
+ /* For clicks on mode line or header line, override
+ the maps we found at POSITION unconditionally, even
+ if the corresponding properties of the mode- or
+ header-line string are nil, because propertries at
+ point are not relevant in that case. */
+ if (!NILP (map)
+ || EQ (pos_area, Qmode_line)
+ || EQ (pos_area, Qheader_line))
local_map = map;
-
map = Fget_text_property (pos, Qkeymap, string);
- if (!NILP (map))
+ if (!NILP (map)
+ || EQ (pos_area, Qmode_line)
+ || EQ (pos_area, Qheader_line))
keymap = map;
}
}