Skip to content

Commit be3e9dc

Browse files
authored
Merge pull request #160 from l4l/release-0.2.2
Release 0.2.2
2 parents a762ded + 1a25ba8 commit be3e9dc

File tree

6 files changed

+25
-6
lines changed

6 files changed

+25
-6
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66

77
## Fixes
88

9+
# 0.2.2 - 2024-03-10
10+
11+
## Fixes
12+
13+
- Invalid scale handling
14+
915
# 0.2.1 - 2024-03-10
1016

1117
## Features

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "yofi"
3-
version = "0.2.1"
3+
version = "0.2.2"
44
authors = ["Kitsu <[email protected]>"]
55
edition = "2021"
66

src/window.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ impl Window {
181181
let width = self.width().try_into().expect("width overflow");
182182
let height = self.height().try_into().expect("height overflow");
183183
let stride = width * 4;
184+
self.surface.set_buffer_scale(self.scale.into());
184185

185186
if self
186187
.buffer
@@ -239,10 +240,9 @@ impl Window {
239240
};
240241
let mut point = Point::new(0., 0.);
241242

242-
let scale = self.scale;
243243
let mut drawables = crate::draw::make_drawables(&self.config, &mut self.state);
244244
while let Some(d) = drawables.borrowed_next() {
245-
let occupied = d.draw(&mut dt, scale, space_left, point);
245+
let occupied = d.draw(&mut dt, self.scale, space_left, point);
246246
debug_assert!(
247247
occupied.width <= space_left.width && occupied.height <= space_left.height
248248
);
@@ -251,8 +251,7 @@ impl Window {
251251
space_left.height -= occupied.height;
252252
}
253253

254-
self.surface
255-
.damage_buffer(0, 0, self.width as i32, self.height as i32);
254+
self.surface.damage_buffer(0, 0, width, height);
256255
self.surface.frame(qh, self.surface.clone());
257256
buffer.attach_to(&self.surface).expect("buffer attach");
258257
self.buffer = Some(buffer);

src/window/1Window

Whitespace-only changes.

src/window/compositor.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use anyhow::Context;
12
use sctk::{
23
compositor::CompositorHandler,
34
reexports::client::{
@@ -16,7 +17,20 @@ impl CompositorHandler for Window {
1617
_surface: &WlSurface,
1718
new_factor: i32,
1819
) {
20+
let old_scale = self.scale;
1921
self.scale = new_factor.try_into().expect("invalid surface scale factor");
22+
if old_scale != self.scale {
23+
let size = (4 * self.width() * self.height())
24+
.try_into()
25+
.expect("pixel buffer overflow");
26+
if let Err(err) = self
27+
.pool
28+
.resize(size)
29+
.with_context(|| format!("on pool resize to {size}"))
30+
{
31+
self.error = Some(err);
32+
}
33+
}
2034
}
2135

2236
fn transform_changed(

0 commit comments

Comments
 (0)