From 4e3d0aba3ab9855c9847c962a8570e4df0525dd8 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sat, 26 Sep 2026 15:45:54 -0700 Subject: [PATCH] remove unnecessary menu check in submenu.c --- src/widget/submenu.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 0b320e60..decfbf4d 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -117,9 +117,8 @@ static void click(MwWidget handle) { if(MwGetInteger(handle, MwNleftPadding) <= handle->mouse_point.x && rc.y <= handle->mouse_point.y && handle->mouse_point.y <= (int)(rc.y + rc.height)) { if(menu->sub[i]->wsub == NULL && arrlen(menu->sub[i]->sub) > 0) { - MwPoint p; - MwWidget sw; - int j; + MwPoint p; + int j; for(j = 0; j < arrlen(menu->sub); j++) { if(menu->sub[j]->wsub != NULL) MwDestroyWidget(menu->sub[j]->wsub); @@ -129,14 +128,8 @@ static void click(MwWidget handle) { p.x = MwGetInteger(handle, MwNwidth); p.y = rc.y - 3; - /* some backends (e.g. Wayland) dispatch input while creating a widget, which can re-enter this handler */ - sw = MwCreateWidget(MwSubMenuClass, "submenu", handle, 0, 0, 0, 0); - if(sw != NULL && (menu->sub[i]->wsub != NULL || handle->destroyed)) { - MwDestroyWidget(sw); - } else if(sw != NULL) { - menu->sub[i]->wsub = sw; - MwSubMenuAppear(sw, menu->sub[i], &p, 0); - } + menu->sub[i]->wsub = MwCreateWidget(MwSubMenuClass, "submenu", handle, 0, 0, 0, 0); + MwSubMenuAppear(menu->sub[i]->wsub, menu->sub[i], &p, 0); i = -1; } else if(menu->sub[i]->wsub != NULL && arrlen(menu->sub[i]->sub) > 0) { while(w->parent->widget_class == MwSubMenuClass) w = w->parent;