Mercurial > emacs
changeset 6024:0aa565fdb1b9
(make_lispy_event): For menu bar event in USE_X_TOOLKIT
case, convert x position to glyphs after map_event_to_object.
Call window_from_coordinates later on.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 22 Feb 1994 00:45:38 +0000 |
parents | 67aa546e4ff1 |
children | 6741685c0bb7 |
files | src/keyboard.c |
diffstat | 1 files changed, 16 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/keyboard.c Tue Feb 22 00:43:04 1994 +0000 +++ b/src/keyboard.c Tue Feb 22 00:45:38 1994 +0000 @@ -2492,9 +2492,7 @@ { int part; FRAME_PTR f = XFRAME (event->frame_or_window); - Lisp_Object window - = window_from_coordinates (f, XINT (event->x), XINT (event->y), - &part); + Lisp_Object window; Lisp_Object posn; #ifdef USE_X_TOOLKIT @@ -2503,14 +2501,22 @@ if (XINT (event->y) < FRAME_MENU_BAR_LINES (f)) #endif { + Lisp_Object items; + #ifdef USE_X_TOOLKIT /* The click happened in the menubar. Look for the menu item selected. */ - Lisp_Object items = map_event_to_object (event, f); + int row, column; + + items = map_event_to_object (event, f); + + pixel_to_glyph_coords (f, XINT (event->x), XINT (event->y), + &column, &row, 0, 0); + XFASTINT (event->x) = column; XFASTINT (event->y) = 1; #else /* not USE_X_TOOLKIT */ int hpos; - Lisp_Object items; + items = FRAME_MENU_BAR_ITEMS (f); for (; CONSP (items); items = XCONS (items)->cdr) { @@ -2535,7 +2541,11 @@ else return Fcons (Qnil, Fcons (position, Qnil)); } - else if (XTYPE (window) != Lisp_Window) + + window = window_from_coordinates (f, XINT (event->x), + XINT (event->y), &part); + + if (XTYPE (window) != Lisp_Window) posn = Qnil; else {