xwayland: Implement resize event

Signed-off-by: Joshua Ashton <joshua@froggi.es>
This commit is contained in:
Joshua Ashton 2021-10-17 17:12:51 +00:00 committed by Johan Malm
parent 2a18899689
commit 62123dc37e

View file

@ -43,6 +43,23 @@ handle_request_move(struct wl_listener *listener, void *data)
interactive_begin(view, LAB_INPUT_STATE_MOVE, 0); interactive_begin(view, LAB_INPUT_STATE_MOVE, 0);
} }
static void
handle_request_resize(struct wl_listener *listener, void *data)
{
/*
* This event is raised when a client would like to begin an interactive
* resize, typically because the user clicked on their client-side
* decorations. Note that a more sophisticated compositor should check
* the provied serial against a list of button press serials sent to
* this
* client, to prevent the client from requesting this whenever they
* want.
*/
struct wlr_xwayland_resize_event *event = data;
struct view *view = wl_container_of(listener, view, request_resize);
interactive_begin(view, LAB_INPUT_STATE_RESIZE, event->edges);
}
static void static void
handle_map(struct wl_listener *listener, void *data) handle_map(struct wl_listener *listener, void *data)
{ {
@ -329,6 +346,9 @@ xwayland_surface_new(struct wl_listener *listener, void *data)
view->request_move.notify = handle_request_move; view->request_move.notify = handle_request_move;
wl_signal_add(&xsurface->events.request_move, wl_signal_add(&xsurface->events.request_move,
&view->request_move); &view->request_move);
view->request_resize.notify = handle_request_resize;
wl_signal_add(&xsurface->events.request_resize,
&view->request_resize);
view->set_title.notify = handle_set_title; view->set_title.notify = handle_set_title;
wl_signal_add(&xsurface->events.set_title, &view->set_title); wl_signal_add(&xsurface->events.set_title, &view->set_title);