summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/keyboard.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index b6d8f6fe24a..9642dcad133 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -2439,14 +2439,6 @@ kbd_buffer_get_event (KBOARD **kbp)
kbd_fetch_ptr = event + 1;
}
#endif
- else if (event->kind == menu_bar_event)
- {
- /* The event value is in the cdr of the frame_or_window slot. */
- if (!CONSP (event->frame_or_window))
- abort ();
- obj = XCONS (event->frame_or_window)->cdr;
- kbd_fetch_ptr = event + 1;
- }
else if (event->kind == buffer_switch_event)
{
/* The value doesn't matter here; only the type is tested. */
@@ -2471,7 +2463,9 @@ kbd_buffer_get_event (KBOARD **kbp)
Lisp_Object focus;
frame = event->frame_or_window;
- if (WINDOWP (frame))
+ if (CONSP (frame))
+ frame = XCONS (frame)->car;
+ else if (WINDOWP (frame))
frame = WINDOW_FRAME (XWINDOW (frame));
focus = FRAME_FOCUS_FRAME (XFRAME (frame));
@@ -3165,6 +3159,14 @@ make_lispy_event (event)
}
#endif /* HAVE_MOUSE */
+#ifdef USE_X_TOOLKIT
+ case menu_bar_event:
+ /* The event value is in the cdr of the frame_or_window slot. */
+ if (!CONSP (event->frame_or_window))
+ abort ();
+ return XCONS (event->frame_or_window)->cdr;
+#endif
+
/* The 'kind' field of the event is something we don't recognize. */
default:
abort ();