From ac7c94db12d9b599050122a00b922b82e21cb16b Mon Sep 17 00:00:00 2001 From: tokyo4j Date: Thu, 19 Dec 2024 01:06:48 +0900 Subject: [PATCH] menu: slightly slide menus opened with atCursor="no" This is reland of 2ade6a1e which was reverted with 21bd5b00, but this prevents the x-position of the menu from being negative and slides menus opened with Alt-Space too. --- src/action.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/action.c b/src/action.c index fdce2b4f..ce4f077f 100644 --- a/src/action.c +++ b/src/action.c @@ -670,14 +670,17 @@ show_menu(struct server *server, struct view *view, struct cursor_context *ctx, } /* Place menu in the view corner if desired (and menu is not root-menu) */ if (!at_cursor && view) { - x = view->current.x; + struct wlr_box extent = ssd_max_extents(view); + x = extent.x; y = view->current.y; /* Push the client menu underneath the button */ if (is_client_menu && ssd_part_contains( LAB_SSD_BUTTON, ctx->type)) { assert(ctx->node); - int ly; - wlr_scene_node_coords(ctx->node, &x, &ly); + int lx, ly; + wlr_scene_node_coords(ctx->node, &lx, &ly); + /* MAX() prevents negative x when the window is maximized */ + x = MAX(x, lx - server->theme->menu_border_width); } } -- 2.52.0