wayland: Add support for show_window_menu

This commit is contained in:
Jasper St. Pierre 2014-03-13 16:54:04 -04:00
parent 04449923bd
commit efcd7d86e7
2 changed files with 34 additions and 0 deletions

View File

@ -770,6 +770,23 @@ xdg_surface_set_app_id (struct wl_client *client,
meta_window_set_wm_class (surface->window, app_id, app_id); meta_window_set_wm_class (surface->window, app_id, app_id);
} }
static void
xdg_surface_show_window_menu (struct wl_client *client,
struct wl_resource *resource,
struct wl_resource *seat_resource,
uint32_t serial,
uint32_t x,
uint32_t y)
{
MetaWaylandSeat *seat = wl_resource_get_user_data (seat_resource);
MetaWaylandSurface *surface = wl_resource_get_user_data (resource);
if (!meta_wayland_seat_can_grab_surface (seat, surface, serial))
return;
meta_window_show_menu (surface->window, x, y);
}
static gboolean static gboolean
begin_grab_op_on_surface (MetaWaylandSurface *surface, begin_grab_op_on_surface (MetaWaylandSurface *surface,
MetaWaylandSeat *seat, MetaWaylandSeat *seat,
@ -910,6 +927,7 @@ static const struct xdg_surface_interface meta_wayland_xdg_surface_interface = {
xdg_surface_set_margin, xdg_surface_set_margin,
xdg_surface_set_title, xdg_surface_set_title,
xdg_surface_set_app_id, xdg_surface_set_app_id,
xdg_surface_show_window_menu,
xdg_surface_move, xdg_surface_move,
xdg_surface_resize, xdg_surface_resize,
xdg_surface_ack_configure, xdg_surface_ack_configure,

View File

@ -198,6 +198,22 @@
<arg name="app_id" type="string"/> <arg name="app_id" type="string"/>
</request> </request>
<request name="show_window_menu">
<description summary="show the window menu">
Clients implementing client-side decorations might want to show
a context menu when right-clicking on the decorations, giving the
user a menu that they can use to maximize or minimize the window.
The seat passed must have either pointer or keyboard focus to pop
up the window menu for a surface.
</description>
<arg name="seat" type="object" interface="wl_seat" summary="the seat to pop the window up on"/>
<arg name="serial" type="uint" summary="serial of the event to pop up the window for"/>
<arg name="x" type="uint"/>
<arg name="y" type="uint"/>
</request>
<request name="move"> <request name="move">
<description summary="start an interactive move"> <description summary="start an interactive move">
Start a pointer-driven move of the surface. Start a pointer-driven move of the surface.