diff --git a/types/scene/wlr_scene.c b/types/scene/wlr_scene.c index e4d68654a..766189485 100644 --- a/types/scene/wlr_scene.c +++ b/types/scene/wlr_scene.c @@ -1865,10 +1865,12 @@ static bool scene_entry_try_direct_scanout(struct render_list_entry *entry, pending.buffer_src_box = buffer->src_box; } - // Translate the location from scene coordinates to output coordinates + // Translate the position from scene coordinates to output coordinates pending.buffer_dst_box.x = entry->x - scene_output->x; pending.buffer_dst_box.y = entry->y - scene_output->y; + scene_node_get_size(node, &pending.buffer_dst_box.width, &pending.buffer_dst_box.height); + transform_output_box(&pending.buffer_dst_box, data); wlr_output_state_set_buffer(&pending, buffer->buffer); if (buffer->wait_timeline != NULL) {