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;
}
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

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,
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;

View file

@ -623,7 +623,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);
}

View file

@ -364,7 +364,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);
}

View file

@ -136,7 +136,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;

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,
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);
@ -1238,7 +1238,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;
wl_signal_emit_mutable(&scene_buffer->events.frame_done, when);
}