wlroots: adapt to scene fractional position changes

Signed-off-by: Loukas Agorgianitis <loukas@agorgianitis.com>
This commit is contained in:
Loukas Agorgianitis 2025-04-05 20:43:57 +03:00
parent 3f0b3f8f9b
commit e6a85347ce
6 changed files with 10 additions and 7 deletions

View file

@ -346,7 +346,7 @@ static void popup_unconstrain(struct sway_layer_popup *popup) {
return; return;
} }
int lx, ly; double lx, ly;
wlr_scene_node_coords(&popup->toplevel->scene->tree->node, &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 // the output box expressed in the coordinate system of the toplevel parent

View file

@ -142,7 +142,7 @@ static struct buffer_timer *buffer_timer_get_or_create(struct wlr_scene_buffer *
} }
static void send_frame_done_iterator(struct wlr_scene_buffer *buffer, 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 send_frame_done_data *data = user_data;
struct sway_output *output = data->output; struct sway_output *output = data->output;
int view_max_render_time = 0; int view_max_render_time = 0;

View file

@ -623,7 +623,7 @@ void arrange_popups(struct wlr_scene_tree *popups) {
SWAY_SCENE_DESC_POPUP); SWAY_SCENE_DESC_POPUP);
if (popup) { if (popup) {
int lx, ly; double lx, ly;
wlr_scene_node_coords(popup->relative, &lx, &ly); wlr_scene_node_coords(popup->relative, &lx, &ly);
wlr_scene_node_set_position(node, lx, ly); wlr_scene_node_set_position(node, lx, ly);
} }

View file

@ -364,7 +364,7 @@ static void handle_new_popup(struct wl_listener *listener, void *data) {
return; return;
} }
int lx, ly; double lx, ly;
wlr_scene_node_coords(&popup->view->content_tree->node, &lx, &ly); wlr_scene_node_coords(&popup->view->content_tree->node, &lx, &ly);
wlr_scene_node_set_position(&popup->scene_tree->node, lx, ly); wlr_scene_node_set_position(&popup->scene_tree->node, lx, ly);
} }

View file

@ -136,7 +136,10 @@ static void constrain_popup(struct sway_input_popup *popup) {
} }
struct wlr_box parent = {0}; 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_box geo = {0};
struct wlr_output *output; struct wlr_output *output;

View file

@ -1178,7 +1178,7 @@ void view_remove_saved_buffer(struct sway_view *view) {
} }
static void view_save_buffer_iterator(struct wlr_scene_buffer *buffer, 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_tree *tree = data;
struct wlr_scene_buffer *sbuf = wlr_scene_buffer_create(tree, NULL); struct wlr_scene_buffer *sbuf = wlr_scene_buffer_create(tree, NULL);
@ -1238,7 +1238,7 @@ bool view_can_tear(struct sway_view *view) {
} }
static void send_frame_done_iterator(struct wlr_scene_buffer *scene_buffer, 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 timespec *when = data;
wl_signal_emit_mutable(&scene_buffer->events.frame_done, when); wl_signal_emit_mutable(&scene_buffer->events.frame_done, when);
} }