]> git.mdlowis.com Git - proto/labwc.git/commitdiff
xdg: fix crash on actions from menu opened by show_window_menu requests
authortokyo4j <hrak1529@gmail.com>
Fri, 4 Oct 2024 07:44:55 +0000 (16:44 +0900)
committerHiroaki Yamamoto <hrak1529@gmail.com>
Fri, 4 Oct 2024 22:40:09 +0000 (07:40 +0900)
Also removed a redundant line in show_menu() in action.c.

src/action.c
src/xdg.c

index c19810c14a6a1a366a7e9de6a4f7b4f6530c4ee2..810026a6decddedc9efa749b6b70fb569db6251a 100644 (file)
@@ -734,7 +734,6 @@ show_menu(struct server *server, struct view *view, struct cursor_context *ctx,
 
        /* Replaced by next show_menu() or cleaned on view_destroy() */
        menu->triggered_by_view = view;
-       menu->server->menu_current = menu;
        menu_open_root(menu, x, y);
 }
 
index b92a34a6b2ddc787053e9c6d92af0d0f13c9575d..5184fea4d26c049b0d84e21996d58ab9faab4635 100644 (file)
--- a/src/xdg.c
+++ b/src/xdg.c
@@ -418,8 +418,11 @@ handle_request_show_window_menu(struct wl_listener *listener, void *data)
        struct xdg_toplevel_view *xdg_toplevel_view = wl_container_of(
                listener, xdg_toplevel_view, request_show_window_menu);
        struct server *server = xdg_toplevel_view->base.server;
+
        struct menu *menu = menu_get_by_id(server, "client-menu");
        assert(menu);
+       menu->triggered_by_view = &xdg_toplevel_view->base;
+
        struct wlr_cursor *cursor = server->seat.cursor;
        menu_open_root(menu, cursor->x, cursor->y);
 }