From 3a7c6ce3005db5034c7382c376f4532cf8108552 Mon Sep 17 00:00:00 2001 From: tokyo4j Date: Wed, 13 Nov 2024 05:34:44 +0900 Subject: [PATCH] menu: consider padding when applying menu.width.{min,max} --- src/menu/menu.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/menu/menu.c b/src/menu/menu.c index f3de9418..045d310a 100644 --- a/src/menu/menu.c +++ b/src/menu/menu.c @@ -339,15 +339,14 @@ menu_update_scene(struct menu *menu) menu->scene_tree = wlr_scene_tree_create(menu->server->menu_tree); wlr_scene_node_set_enabled(&menu->scene_tree->node, false); - /* Get widest menu item, clamped by menu_max_width */ - int max_width = theme->menu_min_width; + /* Menu width is the maximum item width, capped by menu.width.{min,max} */ + menu->size.width = 0; wl_list_for_each(item, &menu->menuitems, link) { - if (item->native_width > max_width) { - max_width = item->native_width < theme->menu_max_width - ? item->native_width : theme->menu_max_width; - } + menu->size.width = MAX(menu->size.width, + item->native_width + 2 * theme->menu_items_padding_x); } - menu->size.width = max_width + 2 * theme->menu_items_padding_x; + menu->size.width = MAX(menu->size.width, theme->menu_min_width); + menu->size.width = MIN(menu->size.width, theme->menu_max_width); /* Update all items for the new size */ int item_y = 0;