changeset 10275:0231c0d38918

(make_lispy_event) [USE_X_TOOLKIT]: Turn off special handling of menu bar mouse events. (make_lispy_event): Tell pixel_to_glyph_coords not to clip.
author Richard M. Stallman <rms@gnu.org>
date Tue, 27 Dec 1994 21:50:22 +0000
parents 83aaf59dabbe
children 86c61b6bd265
files src/keyboard.c
diffstat 1 files changed, 12 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/keyboard.c	Tue Dec 27 21:45:06 1994 +0000
+++ b/src/keyboard.c	Tue Dec 27 21:50:22 1994 +0000
@@ -2729,13 +2729,17 @@
 	      return Qnil;
 
 	    pixel_to_glyph_coords (f, XINT (event->x), XINT (event->y),
-				   &column, &row, 0, 0);
-
-#ifdef USE_X_TOOLKIT
-	    if (FRAME_EXTERNAL_MENU_BAR (f) && XINT (event->y) == -1)
-#else
-	    if (row < FRAME_MENU_BAR_LINES (f))
-#endif
+				   &column, &row, 0, 1);
+
+#ifndef USE_X_TOOLKIT
+	    /* In the non-toolkit version, clicks on the menu bar
+	       are ordinary button events in the event buffer.
+	       Distinguish them, and invoke the menu.
+
+	       (In the toolkit version, the toolkit handles the menu bar
+	       and Emacs doesn't know about it until after the user
+	       makes a selection.)  */
+	    if (row >= 0 && row < FRAME_MENU_BAR_LINES (f))
 	      {
 		Lisp_Object items, item;
 		int hpos;
@@ -2747,7 +2751,6 @@
 		if (! (event->modifiers & down_modifier))
 		  return Qnil;
 
-#ifndef USE_X_TOOLKIT
 		item = Qnil;
 		items = FRAME_MENU_BAR_ITEMS (f);
 		for (i = 0; i < XVECTOR (items)->size; i += 3)
@@ -2764,7 +2767,6 @@
 			break;
 		      }
 		  }
-#endif /* not USE_X_TOOLKIT  */
 
 		position
 		  = Fcons (event->frame_or_window,
@@ -2775,6 +2777,7 @@
 
 		return Fcons (item, Fcons (position, Qnil));
 	      }
+#endif /* not USE_X_TOOLKIT */
 
 	    window = window_from_coordinates (f, column, row, &part);