diff --git a/sway/desktop/layer_shell.c b/sway/desktop/layer_shell.c index 8c54d71a..f136db26 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 12dc9cc7..de5ca9cf 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 325a3022..f2d47757 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 696a45ad..e71afeca 100644 --- a/sway/desktop/xdg_shell.c +++ b/sway/desktop/xdg_shell.c @@ -375,7 +375,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 e496bff1..a7d0719e 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 3d621124..0503b0da 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -1194,7 +1194,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); @@ -1258,7 +1258,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) {