From 428423cfa90c91902193ff3da303543173b57fdc Mon Sep 17 00:00:00 2001 From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Wed, 16 Mar 2022 05:51:36 +0100 Subject: [PATCH 1/2] menu.c: Handle out of screen submenus Fixes #276 --- src/menu/menu.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/menu/menu.c b/src/menu/menu.c index 2f34d4e3..d3e54ceb 100644 --- a/src/menu/menu.c +++ b/src/menu/menu.c @@ -357,6 +357,12 @@ menu_configure(struct menu *menu, int lx, int ly, enum menu_align align) double oy = ly; struct wlr_output *wlr_output = wlr_output_layout_output_at( menu->server->output_layout, lx, ly); + if (!wlr_output) { + wlr_log(WLR_ERROR, + "Failed to position menu %s (%s) and its submenus: " + "Not enough screen space", menu->id, menu->label); + return; + } wlr_output_layout_output_coords(menu->server->output_layout, wlr_output, &ox, &oy); struct wlr_box usable = output_usable_area_from_cursor_coords(menu->server); From 420c0712f8ac204444e1e20568827d1e9fca41a0 Mon Sep 17 00:00:00 2001 From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Wed, 16 Mar 2022 06:08:08 +0100 Subject: [PATCH 2/2] menu.c: Handle keybinding based Reconfigure while menu is shown --- src/menu/menu.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/menu/menu.c b/src/menu/menu.c index d3e54ceb..983e8ef2 100644 --- a/src/menu/menu.c +++ b/src/menu/menu.c @@ -593,6 +593,7 @@ void menu_reconfigure(struct server *server) { menu_finish(); + server->menu_current = NULL; menu_init_rootmenu(server); menu_init_windowmenu(server); }