Mercurial > hg > xemacs-beta
diff src/keymap.c @ 284:558f606b08ae r21-0b40
Import from CVS: tag r21-0b40
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:34:13 +0200 |
parents | c42ec1d1cded |
children | 9ea74add5d37 |
line wrap: on
line diff
--- a/src/keymap.c Mon Aug 13 10:33:19 2007 +0200 +++ b/src/keymap.c Mon Aug 13 10:34:13 2007 +0200 @@ -208,6 +208,8 @@ static Lisp_Object Vkey_translation_map; +static Lisp_Object Vvertical_divider_map; + /* This is incremented whenever a change is made to a keymap. This is so that things which care (such as the menubar code) can recompute privately-cached data when the user has changed keybindings. @@ -2332,6 +2334,7 @@ else { /* It's a mouse event; order of keymaps searched is: + o vertical-divider-map, if event is over a divider o local-map of mouse-grabbed-buffer o keymap of any/all extents under the mouse if the mouse is over a modeline: @@ -2343,6 +2346,12 @@ */ Lisp_Object window = Fevent_window (terminal); + if (!NILP (Fevent_over_vertical_divider_p (terminal))) + { + if (KEYMAPP (Vvertical_divider_map)) + relevant_map_push (Vvertical_divider_map, &closure); + } + if (BUFFERP (Vmouse_grabbed_buffer)) { Lisp_Object map = XBUFFER (Vmouse_grabbed_buffer)->keymap; @@ -2535,6 +2544,7 @@ For mouse-clicks, the order of keymaps searched is: - the current-local-map of the `mouse-grabbed-buffer' if any; + - vertical-divider-map, if the event happened over a vertical divider - the `keymap' property of any extent(s) at the position of the click (this includes modeline extents); - the modeline-map of the buffer corresponding to the modeline under @@ -4316,6 +4326,10 @@ and applies even for keys that have ordinary bindings. */ ); + DEFVAR_LISP ("vertical-divider-map", &Vvertical_divider_map /* +Keymap which handles mouse clicks over vertical dividers. +*/ ); + DEFVAR_INT ("keymap-tick", &keymap_tick /* Incremented for each change to any keymap. */ );