diff --git a/sway/desktop/layer_shell.c b/sway/desktop/layer_shell.c index 8c54d71aa..f136db261 100644 --- a/sway/desktop/layer_shell.c +++ b/sway/desktop/layer_shell.c @@ -334,7 +334,7 @@ static void popup_unconstrain(struct sway_layer_popup *popup) { return; } - int lx, ly; + double lx, ly; wlr_scene_node_coords(&popup->toplevel->scene->tree->node, &lx, &ly); // the output box expressed in the coordinate system of the toplevel parent diff --git a/sway/desktop/output.c b/sway/desktop/output.c index 12dc9cc7a..de5ca9cfd 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -144,7 +144,7 @@ static struct buffer_timer *buffer_timer_get_or_create(struct wlr_scene_surface } static void send_frame_done_iterator(struct wlr_scene_buffer *buffer, - int x, int y, void *user_data) { + double x, double y, void *user_data) { struct send_frame_done_data *data = user_data; struct sway_output *output = data->output; int view_max_render_time = 0; diff --git a/sway/desktop/transaction.c b/sway/desktop/transaction.c index 325a30226..f2d477570 100644 --- a/sway/desktop/transaction.c +++ b/sway/desktop/transaction.c @@ -627,7 +627,7 @@ void arrange_popups(struct wlr_scene_tree *popups) { SWAY_SCENE_DESC_POPUP); if (popup) { - int lx, ly; + double lx, ly; wlr_scene_node_coords(popup->relative, &lx, &ly); wlr_scene_node_set_position(node, lx, ly); } diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c index 7217e1369..c2c7782a3 100644 --- a/sway/desktop/xdg_shell.c +++ b/sway/desktop/xdg_shell.c @@ -377,7 +377,7 @@ static void handle_new_popup(struct wl_listener *listener, void *data) { return; } - int lx, ly; + double lx, ly; wlr_scene_node_coords(&popup->view->content_tree->node, &lx, &ly); wlr_scene_node_set_position(&popup->scene_tree->node, lx, ly); } diff --git a/sway/input/text_input.c b/sway/input/text_input.c index e496bff1b..a7d0719e8 100644 --- a/sway/input/text_input.c +++ b/sway/input/text_input.c @@ -132,7 +132,10 @@ static void constrain_popup(struct sway_input_popup *popup) { } struct wlr_box parent = {0}; - wlr_scene_node_coords(&popup->desc.relative->parent->node, &parent.x, &parent.y); + double lx, ly; + wlr_scene_node_coords(&popup->desc.relative->parent->node, &lx, &ly); + parent.x = lx; + parent.y = ly; struct wlr_box geo = {0}; struct wlr_output *output; diff --git a/sway/tree/view.c b/sway/tree/view.c index eab2a5e2b..f5e74d204 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -1196,7 +1196,7 @@ void view_remove_saved_buffer(struct sway_view *view) { } static void view_save_buffer_iterator(struct wlr_scene_buffer *buffer, - int sx, int sy, void *data) { + double sx, double sy, void *data) { struct wlr_scene_tree *tree = data; struct wlr_scene_buffer *sbuf = wlr_scene_buffer_create(tree, NULL); @@ -1260,7 +1260,7 @@ bool view_can_tear(struct sway_view *view) { } static void send_frame_done_iterator(struct wlr_scene_buffer *scene_buffer, - int x, int y, void *data) { + double x, double y, void *data) { struct timespec *when = data; struct wlr_scene_surface *scene_surface = wlr_scene_surface_try_from_buffer(scene_buffer); if (scene_surface == NULL) {