xdg: fix crash on actions from menu opened by show_window_menu requests

Also removed a redundant line in show_menu() in action.c.
This commit is contained in:
tokyo4j 2024-10-04 16:44:55 +09:00 committed by Hiroaki Yamamoto
parent b4bc6ffceb
commit c413e65a20
2 changed files with 3 additions and 1 deletions

View 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);
}

View file

@ -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);
}