summaryrefslogtreecommitdiff
path: root/openbox/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbox/event.c')
-rw-r--r--openbox/event.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/openbox/event.c b/openbox/event.c
index 00de8b36..7c85e842 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -1276,17 +1276,12 @@ static void event_handle_menu(XEvent *ev)
}
break;
case LeaveNotify:
- if ((e = g_hash_table_lookup(menu_frame_map, &ev->xcrossing.window))) {
- if (e->entry->type != OB_MENU_ENTRY_TYPE_SUBMENU)
- menu_frame_select(e->frame, NULL);
- }
- case MotionNotify:
- if ((e = menu_entry_frame_under(ev->xmotion.x_root,
- ev->xmotion.y_root))) {
- /* XXX menu_frame_entry_move_on_screen(f); */
- menu_frame_select(e->frame, e);
+ if ((e = g_hash_table_lookup(menu_frame_map, &ev->xcrossing.window)) &&
+ (f = find_active_menu()) && f->selected == e &&
+ e->entry->type != OB_MENU_ENTRY_TYPE_SUBMENU)
+ {
+ menu_frame_select(e->frame, NULL);
}
- break;
case KeyPress:
if (ev->xkey.keycode == ob_keycode(OB_KEY_ESCAPE))
menu_frame_hide_all();