|
|
|
@ -3961,6 +3961,54 @@ move_binding(struct weston_seat *seat, uint32_t time, uint32_t button, void *dat |
|
|
|
|
surface_move(shsurf, (struct weston_seat *) seat); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void |
|
|
|
|
maximize_binding(struct weston_seat *seat, uint32_t time, uint32_t button, void *data) |
|
|
|
|
{ |
|
|
|
|
struct weston_surface *focus = seat->pointer->focus->surface; |
|
|
|
|
struct weston_surface *surface; |
|
|
|
|
struct shell_surface *shsurf; |
|
|
|
|
|
|
|
|
|
surface = weston_surface_get_main_surface(focus); |
|
|
|
|
if (surface == NULL) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
shsurf = get_shell_surface(surface); |
|
|
|
|
if (shsurf == NULL) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
if (!shell_surface_is_xdg_surface(shsurf)) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
if (shsurf->state.maximized) |
|
|
|
|
xdg_surface_send_request_unset_maximized(shsurf->resource); |
|
|
|
|
else |
|
|
|
|
xdg_surface_send_request_set_maximized(shsurf->resource); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void |
|
|
|
|
fullscreen_binding(struct weston_seat *seat, uint32_t time, uint32_t button, void *data) |
|
|
|
|
{ |
|
|
|
|
struct weston_surface *focus = seat->pointer->focus->surface; |
|
|
|
|
struct weston_surface *surface; |
|
|
|
|
struct shell_surface *shsurf; |
|
|
|
|
|
|
|
|
|
surface = weston_surface_get_main_surface(focus); |
|
|
|
|
if (surface == NULL) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
shsurf = get_shell_surface(surface); |
|
|
|
|
if (shsurf == NULL) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
if (!shell_surface_is_xdg_surface(shsurf)) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
if (shsurf->state.fullscreen) |
|
|
|
|
xdg_surface_send_request_unset_fullscreen(shsurf->resource); |
|
|
|
|
else |
|
|
|
|
xdg_surface_send_request_set_fullscreen(shsurf->resource); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void |
|
|
|
|
touch_move_binding(struct weston_seat *seat, uint32_t time, void *data) |
|
|
|
|
{ |
|
|
|
@ -6688,6 +6736,10 @@ shell_add_bindings(struct weston_compositor *ec, struct desktop_shell *shell) |
|
|
|
|
zoom_key_binding, NULL); |
|
|
|
|
weston_compositor_add_key_binding(ec, KEY_PAGEDOWN, mod, |
|
|
|
|
zoom_key_binding, NULL); |
|
|
|
|
weston_compositor_add_key_binding(ec, KEY_M, mod, maximize_binding, |
|
|
|
|
NULL); |
|
|
|
|
weston_compositor_add_key_binding(ec, KEY_F, mod, fullscreen_binding, |
|
|
|
|
NULL); |
|
|
|
|
weston_compositor_add_button_binding(ec, BTN_LEFT, mod, move_binding, |
|
|
|
|
shell); |
|
|
|
|
weston_compositor_add_touch_binding(ec, mod, touch_move_binding, shell); |
|
|
|
|