diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-04 11:43:56 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-04 11:45:39 +0400 |
| commit | 79093baeee5bbb52e737afe4814b64a8f457da5a (patch) | |
| tree | f9ce7826d7247a765437946f8e9d334f24f9c971 /src/layout | |
| parent | 7093385b4d51978a26f9d8c7e2230b4302e5f872 (diff) | |
| download | niri-79093baeee5bbb52e737afe4814b64a8f457da5a.tar.gz niri-79093baeee5bbb52e737afe4814b64a8f457da5a.tar.bz2 niri-79093baeee5bbb52e737afe4814b64a8f457da5a.zip | |
Extract rules out
Diffstat (limited to 'src/layout')
| -rw-r--r-- | src/layout/tile.rs | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/layout/tile.rs b/src/layout/tile.rs index f1816781..d989030b 100644 --- a/src/layout/tile.rs +++ b/src/layout/tile.rs @@ -594,6 +594,10 @@ impl<W: LayoutElement> Tile<W> { let window_render_loc = location + window_loc; let area = Rectangle::from_loc_and_size(window_render_loc, animated_window_size); + let rules = self.window.rules(); + let clip_to_geometry = !self.is_fullscreen && rules.clip_to_geometry == Some(true); + let radius = rules.geometry_corner_radius.unwrap_or_default(); + // If we're resizing, try to render a shader, or a fallback. let mut resize_shader = None; let mut resize_popups = None; @@ -629,11 +633,6 @@ impl<W: LayoutElement> Tile<W> { .map_err(|err| warn!("error rendering window to texture: {err:?}")) .ok(); - let rules = self.window.rules(); - let clip_to_geometry = - !self.is_fullscreen && rules.clip_to_geometry == Some(true); - let corner_radius = rules.geometry_corner_radius.unwrap_or_default(); - if let Some((texture_current, _sync_point, texture_current_geo)) = current { let elem = ResizeRenderElement::new( area, @@ -644,7 +643,7 @@ impl<W: LayoutElement> Tile<W> { window_size, resize.anim.value() as f32, resize.anim.clamped_value().clamp(0., 1.) as f32, - corner_radius, + radius, clip_to_geometry, alpha, ); @@ -683,13 +682,7 @@ impl<W: LayoutElement> Tile<W> { .render(renderer, window_render_loc, scale, alpha, target); let geo = Rectangle::from_loc_and_size(window_render_loc, window_size); - - let rules = self.window.rules(); - let clip_to_geometry = !self.is_fullscreen && rules.clip_to_geometry == Some(true); - let radius = rules - .geometry_corner_radius - .unwrap_or_default() - .fit_to(window_size.w as f32, window_size.h as f32); + let radius = radius.fit_to(window_size.w as f32, window_size.h as f32); let clip_shader = ClippedSurfaceRenderElement::shader(renderer).cloned(); let has_border_shader = BorderRenderElement::has_shader(renderer); |
