damage: Remove set_size()

Changes in geometry already cause a repaint.
This commit is contained in:
Ivan Molodetskikh
2026-02-13 21:13:23 +03:00
parent ab10a260fa
commit f022b3c504
3 changed files with 9 additions and 22 deletions
+2 -3
View File
@@ -403,7 +403,6 @@ impl<W: LayoutElement> Tile<W> {
.unwrap_or_default()
.fit_to(window_size.w as f32, window_size.h as f32);
self.rounded_corner_damage.set_corner_radius(radius);
self.rounded_corner_damage.set_size(window_size);
}
pub fn advance_animations(&mut self) {
@@ -1200,8 +1199,8 @@ impl<W: LayoutElement> Tile<W> {
};
if clip_to_geometry && clip_shader.is_some() {
let damage = self.rounded_corner_damage.element();
push(damage.with_location(window_render_loc).into());
let damage = self.rounded_corner_damage.render(geo);
push(damage.into());
}
self.window
+2 -6
View File
@@ -272,10 +272,6 @@ impl<'render> RenderElement<TtyRenderer<'render>>
}
impl RoundedCornerDamage {
pub fn set_size(&mut self, size: Size<f64, Logical>) {
self.damage.set_size(size);
}
pub fn set_corner_radius(&mut self, corner_radius: CornerRadius) {
if self.corner_radius == corner_radius {
return;
@@ -286,7 +282,7 @@ impl RoundedCornerDamage {
self.damage.damage_all();
}
pub fn element(&self) -> ExtraDamage {
self.damage.clone()
pub fn render(&self, geometry: Rectangle<f64, Logical>) -> ExtraDamage {
self.damage.render(geometry)
}
}
+5 -13
View File
@@ -1,7 +1,7 @@
use smithay::backend::renderer::element::{Element, Id, RenderElement};
use smithay::backend::renderer::utils::CommitCounter;
use smithay::backend::renderer::Renderer;
use smithay::utils::{Buffer, Logical, Physical, Point, Rectangle, Scale, Size};
use smithay::utils::{Buffer, Logical, Physical, Rectangle, Scale, Size};
#[derive(Debug, Clone)]
pub struct ExtraDamage {
@@ -19,22 +19,14 @@ impl ExtraDamage {
}
}
pub fn set_size(&mut self, size: Size<f64, Logical>) {
if self.geometry.size == size {
return;
}
self.geometry.size = size;
self.commit.increment();
}
pub fn damage_all(&mut self) {
self.commit.increment();
}
pub fn with_location(mut self, location: Point<f64, Logical>) -> Self {
self.geometry.loc = location;
self
pub fn render(&self, geometry: Rectangle<f64, Logical>) -> Self {
let mut this = self.clone();
this.geometry = geometry;
this
}
}