Fix review findings across compositor and shell

This commit is contained in:
Samuel Onoja committed 2026-10-13 04:02:17 +01:00
1 parent 5d9673aad3
commit f7e5efb245
30 files changed
+1222 -181

No files matched your search

+40 -1
View File
@@ -400,7 +400,7 @@ pub(super) fn layer_elements(
let Some(mode) = output.current_mode() else {
return Vec::new();
};
let output_crop = Rectangle::<i32, Physical>::from_size(mode.size);
let output_crop = layer_output_crop(mode.size, output.current_transform());
let layers = {
let map = layer_map_for_output(output);
@@ -457,6 +457,10 @@ pub(super) fn layer_elements(
elements
}
fn layer_output_crop(size: Size<i32, Physical>, transform: Transform) -> Rectangle<i32, Physical> {
Rectangle::from_size(transform.transform_size(size))
}
pub(super) fn cursor_elements(
state: &Ferese,
renderer: &mut GlesRenderer,
@@ -527,3 +531,38 @@ pub(super) fn cursor_elements(
CursorImageStatus::Hidden => Vec::new(),
}
}
#[cfg(test)]
mod layer_crop_tests {
use super::*;
#[test]
fn layer_crop_keeps_bottom_edge_content_in_every_output_transform() {
use smithay::backend::renderer::element::solid::SolidColorRenderElement;
let mode = Size::<i32, Physical>::from((1920, 1080));
for transform in [
Transform::Normal,
Transform::_90,
Transform::_180,
Transform::_270,
Transform::Flipped,
Transform::Flipped90,
Transform::Flipped180,
Transform::Flipped270,
] {
let size = transform.transform_size(mode);
let geometry = Rectangle::new((0, size.h - 36).into(), (size.w, 36).into());
let panel = SolidColorRenderElement::new(
Id::new(),
geometry,
CommitCounter::default(),
[1.0; 4],
RenderElementKind::Unspecified,
);
let crop = CropRenderElement::from_element(panel, 1.0, layer_output_crop(mode, transform))
.expect("bottom panel must remain visible");
assert_eq!(crop.geometry(1.0.into()), geometry, "{transform:?}");
}
}
}