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 d9e615c507
commit 35de2798e3
No known key found for this signature in database
GPG key ID: DDC6FA7D5BB332E6
6 changed files with 10 additions and 7 deletions

View file

@ -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

View file

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

View file

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

View file

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

View file

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

View file

@ -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) {