message MenuRequest
Control plane
message MenuRequest
Compositor → menu client: "open this, here."
A request with serial 0 and no items is the opposite: whatever the client is showing, it should stop. The compositor sends one whenever it dismisses a menu itself — a click outside, the window the menu described closing — because taking the surface off the screen says nothing to the process still drawing into it. It wants no reply: the session a reply would answer for is already over.
idl/lava.npidl:634
Fields
items: vector<MenuItem>
Not documented.
idl/lava.npidl:656
serial: u32
Monotonic. Echoed in MenuReply, and the reason the reply can be
trusted: a menu dismissed by the user at the same moment a second
right-click opened another one would otherwise answer for the wrong
menu. A reply naming a serial that is not the open one is dropped.
idl/lava.npidl:639
target: u32
The window this menu is about, or 0 for the desktop. The client shows it in the heading; the compositor is the one that acts on it, and it does not need to be told the number back.
idl/lava.npidl:651
title: string
What to write above the items — a window title, or empty for no heading at all. Not the same as the first item: a heading is not clickable and does not move the rows under it when it is absent.
idl/lava.npidl:655
x: i32
Where the pointer was, in layout coordinates — the same space window positions are in, not the menu surface's own. The client does not place itself with these and could not: it does not know the work area, the panels, or which output this landed on. They are here so a menu can be drawn knowing which corner it was anchored by, and for the log line when one opens somewhere surprising.
idl/lava.npidl:646
y: i32
Not documented.
idl/lava.npidl:647