From d4e80cf301d77f69370cc81657c433990986cfa6 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 11 Sep 2018 16:56:05 +1000 Subject: Rename OP_MOVE to OP_MOVE_FLOATING In preparation for introducing OP_MOVE_TILING. --- sway/desktop/xdg_shell.c | 2 +- sway/desktop/xdg_shell_v6.c | 2 +- sway/desktop/xwayland.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'sway/desktop') diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c index b9ca396a..00448be7 100644 --- a/sway/desktop/xdg_shell.c +++ b/sway/desktop/xdg_shell.c @@ -333,7 +333,7 @@ static void handle_request_move(struct wl_listener *listener, void *data) { struct wlr_xdg_toplevel_move_event *e = data; struct sway_seat *seat = e->seat->seat->data; if (e->serial == seat->last_button_serial) { - seat_begin_move(seat, view->container, seat->last_button); + seat_begin_move_floating(seat, view->container, seat->last_button); } } diff --git a/sway/desktop/xdg_shell_v6.c b/sway/desktop/xdg_shell_v6.c index 0c121adc..d2c9a68b 100644 --- a/sway/desktop/xdg_shell_v6.c +++ b/sway/desktop/xdg_shell_v6.c @@ -330,7 +330,7 @@ static void handle_request_move(struct wl_listener *listener, void *data) { struct wlr_xdg_toplevel_v6_move_event *e = data; struct sway_seat *seat = e->seat->seat->data; if (e->serial == seat->last_button_serial) { - seat_begin_move(seat, view->container, seat->last_button); + seat_begin_move_floating(seat, view->container, seat->last_button); } } diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index 6761b6bc..3619f202 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c @@ -449,7 +449,7 @@ static void handle_request_move(struct wl_listener *listener, void *data) { return; } struct sway_seat *seat = input_manager_current_seat(input_manager); - seat_begin_move(seat, view->container, seat->last_button); + seat_begin_move_floating(seat, view->container, seat->last_button); } static void handle_request_resize(struct wl_listener *listener, void *data) { -- cgit v1.2.3 From 8bb40c24c7b045df0d43e9f22c096d1473f6f9f6 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 11 Sep 2018 21:34:21 +1000 Subject: Implement tiling drag Hold floating_modifier and drag a tiling view to a new location. --- sway/desktop/render.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'sway/desktop') diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 8a6f63aa..8b5b3e95 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -891,6 +891,21 @@ static void render_floating(struct sway_output *soutput, } } +static void render_dropzones(struct sway_output *output, + pixman_region32_t *damage) { + struct sway_seat *seat; + wl_list_for_each(seat, &input_manager->seats, link) { + if (seat->operation == OP_MOVE_TILING && seat->op_target_node + && node_get_output(seat->op_target_node) == output) { + float color[4]; + memcpy(&color, config->border_colors.focused.indicator, + sizeof(float) * 4); + premultiply_alpha(color, 0.5); + render_rect(output->wlr_output, damage, &seat->op_drop_box, color); + } + } +} + void output_render(struct sway_output *output, struct timespec *when, pixman_region32_t *damage) { struct wlr_output *wlr_output = output->wlr_output; @@ -973,6 +988,8 @@ void output_render(struct sway_output *output, struct timespec *when, &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP]); } + render_dropzones(output, damage); + struct sway_seat *seat = input_manager_current_seat(input_manager); struct sway_container *focus = seat_get_focused_container(seat); if (focus && focus->view) { -- cgit v1.2.3 From eb74317c2d8e2f58bde1f04bb900ed4948005752 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 11 Sep 2018 22:26:39 +1000 Subject: Fix dropzone box on scaled outputs --- sway/desktop/render.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'sway/desktop') diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 8b5b3e95..1d2f445d 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -901,7 +901,10 @@ static void render_dropzones(struct sway_output *output, memcpy(&color, config->border_colors.focused.indicator, sizeof(float) * 4); premultiply_alpha(color, 0.5); - render_rect(output->wlr_output, damage, &seat->op_drop_box, color); + struct wlr_box box; + memcpy(&box, &seat->op_drop_box, sizeof(struct wlr_box)); + scale_box(&box, output->wlr_output->scale); + render_rect(output->wlr_output, damage, &box, color); } } } -- cgit v1.2.3