From: tokyo4j Date: Wed, 18 Dec 2024 16:06:48 +0000 (+0900) Subject: menu: slightly slide menus opened with atCursor="no" X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=ac7c94db12d9b599050122a00b922b82e21cb16b;p=proto%2Flabwc.git 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. --- 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); } }