diff --git a/winit/src/platform_specific/wayland/subsurface_widget.rs b/winit/src/platform_specific/wayland/subsurface_widget.rs index c29a82b7..9b137666 100644 --- a/winit/src/platform_specific/wayland/subsurface_widget.rs +++ b/winit/src/platform_specific/wayland/subsurface_widget.rs @@ -579,7 +579,6 @@ pub(crate) fn take_subsurfaces() -> Vec { #[must_use] pub struct Subsurface { - buffer_size: Size, buffer: SubsurfaceBuffer, width: Length, height: Length, @@ -602,10 +601,12 @@ where _renderer: &Renderer, limits: &layout::Limits, ) -> layout::Node { - let raw_size = - limits.resolve(self.width, self.height, self.buffer_size); + let buffer_size = + Size::new(self.buffer.width() as f32, self.buffer.height() as f32); - let full_size = self.content_fit.fit(self.buffer_size, raw_size); + let raw_size = limits.resolve(self.width, self.height, buffer_size); + + let full_size = self.content_fit.fit(buffer_size, raw_size); let final_size = Size { width: match self.width { @@ -644,13 +645,8 @@ where } impl Subsurface { - pub fn new( - buffer_width: u32, - buffer_height: u32, - buffer: SubsurfaceBuffer, - ) -> Self { + pub fn new(buffer: SubsurfaceBuffer) -> Self { Self { - buffer_size: Size::new(buffer_width as f32, buffer_height as f32), buffer, // Matches defaults of image widget width: Length::Shrink,