diff --git a/dvx/dvxApp.c b/dvx/dvxApp.c index f12e709..d5d184b 100644 --- a/dvx/dvxApp.c +++ b/dvx/dvxApp.c @@ -983,7 +983,10 @@ static void dispatchEvents(AppContextT *ctx) { MenuT *menu = &win->menuBar->menus[i]; if (relX >= menu->barX && relX < menu->barX + menu->barW) { - if (i != ctx->popup.menuIdx || ctx->popup.depth > 0) { + if ((buttons & 1) && !(prevBtn & 1) && i == ctx->popup.menuIdx && ctx->popup.depth == 0) { + // Clicking the same menu bar entry closes the menu + closeAllPopups(ctx); + } else if (i != ctx->popup.menuIdx || ctx->popup.depth > 0) { openPopupAtMenu(ctx, win, i); }