X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=bf2fd932cf1f68e2ab90888cb627743641560b73;hb=bca4fe6c8b8d1ab8b2c9273149f48fd9cd4e0f4d;hp=8f21120248af2e5d6ee7f8eb0e5e7208990cbd2d;hpb=2c4fef29957ecfdfab8bda68d8d3fdf5a2a21324;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index 8f211202..bf2fd932 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -772,7 +772,8 @@ static void event_handle_client(ObClient *client, XEvent *e) { /* use where the press occured */ con = frame_context(client, e->xbutton.window, px, py); - con = mouse_button_frame_context(con, e->xbutton.button); + con = mouse_button_frame_context(con, e->xbutton.button, + e->xbutton.state); if (e->type == ButtonRelease && e->xbutton.button == pb) pb = 0, px = py = -1; @@ -1482,8 +1483,11 @@ static gboolean event_handle_menu_keyboard(XEvent *ev) ret = FALSE; else if (keycode == ob_keycode(OB_KEY_ESCAPE) && state == 0) { - /* Escape closes the active menu */ - menu_frame_hide(frame); + /* Escape goes to the parent menu or closes the last one */ + if (frame->parent) + menu_frame_select(frame, NULL, TRUE); + else + menu_frame_hide_all(); } else if (keycode == ob_keycode(OB_KEY_RETURN) && (state == 0 ||