From a5f3c5c5d2ff83800b8e6aac42aa01eee76c9eef Mon Sep 17 00:00:00 2001 From: Victor Brekenfeld Date: Wed, 5 Jan 2022 13:03:41 +0100 Subject: [PATCH] clippy fixes --- src/backend/renderer/gles2/mod.rs | 5 +--- src/backend/renderer/mod.rs | 1 + src/backend/renderer/utils/mod.rs | 2 +- src/backend/winit/mod.rs | 41 +++++++++++++++++-------------- src/desktop/layer.rs | 14 +++++------ src/desktop/mod.rs | 2 +- src/desktop/space/element.rs | 1 + src/desktop/space/mod.rs | 10 +++----- src/desktop/space/window.rs | 2 +- src/desktop/utils.rs | 7 +++--- src/desktop/window.rs | 5 ---- src/wayland/compositor/mod.rs | 14 +++++------ 12 files changed, 49 insertions(+), 55 deletions(-) diff --git a/src/backend/renderer/gles2/mod.rs b/src/backend/renderer/gles2/mod.rs index 00d2344..4faa4c3 100644 --- a/src/backend/renderer/gles2/mod.rs +++ b/src/backend/renderer/gles2/mod.rs @@ -5,10 +5,7 @@ use std::ffi::CStr; use std::fmt; use std::ptr; use std::rc::Rc; -use std::sync::{ - atomic::{AtomicUsize, Ordering}, - mpsc::{channel, Receiver, Sender}, -}; +use std::sync::mpsc::{channel, Receiver, Sender}; use std::{collections::HashSet, os::raw::c_char}; use cgmath::{prelude::*, Matrix3, Vector2, Vector3}; diff --git a/src/backend/renderer/mod.rs b/src/backend/renderer/mod.rs index e02de36..1b70e85 100644 --- a/src/backend/renderer/mod.rs +++ b/src/backend/renderer/mod.rs @@ -178,6 +178,7 @@ pub trait Frame { /// Render a texture to the current target as a flat 2d-plane at a given /// position and applying the given transformation with the given alpha value. /// (Meaning `src_transform` should match the orientation of surface being rendered). + #[allow(clippy::too_many_arguments)] fn render_texture_at( &mut self, texture: &Self::TextureId, diff --git a/src/backend/renderer/utils/mod.rs b/src/backend/renderer/utils/mod.rs index 28d90f7..9ac79e3 100644 --- a/src/backend/renderer/utils/mod.rs +++ b/src/backend/renderer/utils/mod.rs @@ -141,7 +141,7 @@ where TraversalAction::SkipChildren } }, - |surface, states, location| { + |_surface, states, location| { let mut location = *location; if let Some(data) = states.data_map.get::>() { let mut data = data.borrow_mut(); diff --git a/src/backend/winit/mod.rs b/src/backend/winit/mod.rs index 46f5f7b..b6f2f58 100644 --- a/src/backend/winit/mod.rs +++ b/src/backend/winit/mod.rs @@ -313,29 +313,32 @@ impl WinitGraphicsBackend { damage: Option<&[Rectangle]>, scale: f64, ) -> Result<(), crate::backend::SwapBuffersError> { - let mut damage = if self.damage_tracking && damage.is_some() && !damage.unwrap().is_empty() { - let size = self - .size - .borrow() - .physical_size - .to_f64() - .to_logical(scale) - .to_i32_round::(); - let damage = damage - .unwrap() - .iter() - .map(|rect| { - Rectangle::from_loc_and_size((rect.loc.x, size.h - rect.loc.y - rect.size.h), rect.size) + let mut damage = match damage { + Some(damage) if self.damage_tracking && !damage.is_empty() => { + let size = self + .size + .borrow() + .physical_size + .to_f64() + .to_logical(scale) + .to_i32_round::(); + let damage = damage + .iter() + .map(|rect| { + Rectangle::from_loc_and_size( + (rect.loc.x, size.h - rect.loc.y - rect.size.h), + rect.size, + ) .to_f64() .to_physical(scale) .to_i32_round::() - }) - .collect::>(); - Some(damage) - } else { - None + }) + .collect::>(); + Some(damage) + } + _ => None, }; - self.egl.swap_buffers(damage.as_mut().map(|x| &mut **x))?; + self.egl.swap_buffers(damage.as_deref_mut())?; Ok(()) } } diff --git a/src/desktop/layer.rs b/src/desktop/layer.rs index 0e101d9..8a99374 100644 --- a/src/desktop/layer.rs +++ b/src/desktop/layer.rs @@ -41,7 +41,7 @@ pub fn layer_map_for_output(o: &Output) -> RefMut<'_, LayerMap> { (0, 0), o.current_mode() .map(|mode| mode.size.to_logical(o.current_scale())) - .unwrap_or((0, 0).into()), + .unwrap_or_else(|| (0, 0).into()), ), }) }); @@ -130,9 +130,9 @@ impl LayerMap { output .current_mode() .map(|mode| mode.size.to_logical(output.current_scale())) - .unwrap_or((0, 0).into()), + .unwrap_or_else(|| (0, 0).into()), ); - let mut zone = output_rect.clone(); + let mut zone = output_rect; slog::debug!( crate::slog_or_fallback(None), "Arranging layers into {:?}", @@ -212,18 +212,18 @@ impl LayerMap { location, size ); - if layer + let size_changed = layer .0 .surface .with_pending_state(|state| { state.size.replace(size).map(|old| old != size).unwrap_or(true) }) - .unwrap() - { + .unwrap(); + if size_changed { layer.0.surface.send_configure(); } - layer_state(&layer).location = location; + layer_state(layer).location = location; } slog::debug!(crate::slog_or_fallback(None), "Remaining zone {:?}", zone); diff --git a/src/desktop/mod.rs b/src/desktop/mod.rs index aad577a..66e8d65 100644 --- a/src/desktop/mod.rs +++ b/src/desktop/mod.rs @@ -1,5 +1,5 @@ // TODO: Remove - but for now, this makes sure these files are not completely highlighted with warnings -#![allow(missing_docs, clippy::all)] +#![allow(missing_docs)] pub(crate) mod layer; mod popup; pub mod space; diff --git a/src/desktop/space/element.rs b/src/desktop/space/element.rs index b62dc49..a719310 100644 --- a/src/desktop/space/element.rs +++ b/src/desktop/space/element.rs @@ -47,6 +47,7 @@ where } fn geometry(&self, space_id: usize) -> Rectangle; fn accumulated_damage(&self, for_values: Option<(&Space, &Output)>) -> Vec>; + #[allow(clippy::too_many_arguments)] fn draw( &self, space_id: usize, diff --git a/src/desktop/space/mod.rs b/src/desktop/space/mod.rs index a737c74..d92a6de 100644 --- a/src/desktop/space/mod.rs +++ b/src/desktop/space/mod.rs @@ -30,7 +30,6 @@ use self::window::*; crate::utils::ids::id_gen!(next_space_id, SPACE_ID, SPACE_IDS); -// TODO: Maybe replace UnmanagedResource if nothing else comes up? #[derive(Debug, thiserror::Error)] pub enum SpaceError { #[error("Window is not mapped to this space")] @@ -43,11 +42,12 @@ pub struct Space { // in z-order, back to front windows: IndexSet, outputs: Vec, - // TODO: - //layers: Vec, logger: ::slog::Logger, } +pub type DynamicRenderElements = + Box::Frame, ::Error, ::TextureId>>; + impl Drop for Space { fn drop(&mut self) { SPACE_IDS.lock().unwrap().remove(&self.id); @@ -382,9 +382,7 @@ impl Space { output: &Output, age: usize, clear_color: [f32; 4], - custom_elements: &[Box< - dyn RenderElement::Frame, ::Error, ::TextureId>, - >], + custom_elements: &[DynamicRenderElements], ) -> Result>>, RenderError> where R: Renderer + ImportAll + 'static, diff --git a/src/desktop/space/window.rs b/src/desktop/space/window.rs index 31dc021..f1ece6b 100644 --- a/src/desktop/space/window.rs +++ b/src/desktop/space/window.rs @@ -97,7 +97,7 @@ where damage: &[Rectangle], log: &slog::Logger, ) -> Result<(), R::Error> { - let res = draw_window(renderer, frame, &self, scale, location, damage, log); + let res = draw_window(renderer, frame, self, scale, location, damage, log); if res.is_ok() { window_state(space_id, self).drawn = true; } diff --git a/src/desktop/utils.rs b/src/desktop/utils.rs index b0d847e..79b27f6 100644 --- a/src/desktop/utils.rs +++ b/src/desktop/utils.rs @@ -109,11 +109,10 @@ where .as_ref() .map(|key| !data.damage_seen.contains(key)) .unwrap_or(true) + && states.role == Some("subsurface") { - if states.role == Some("subsurface") { - let current = states.cached_state.current::(); - location += current.location; - } + let current = states.cached_state.current::(); + location += current.location; } } TraversalAction::DoChildren(location) diff --git a/src/desktop/window.rs b/src/desktop/window.rs index e4e6aa1..9f43e59 100644 --- a/src/desktop/window.rs +++ b/src/desktop/window.rs @@ -105,9 +105,6 @@ impl Window { pub fn new(toplevel: Kind) -> Window { let id = next_window_id(); - // TODO: Do we want this? For new lets add Window::commit - //add_commit_hook(toplevel.get_surface().unwrap(), surface_commit); - Window(Rc::new(WindowInner { id, toplevel, @@ -127,7 +124,6 @@ impl Window { } /// A bounding box over this window and its children. - // TODO: Cache and document when to trigger updates. If possible let space do it pub fn bbox(&self) -> Rectangle { if self.0.toplevel.get_surface().is_some() { self.0.bbox.get() @@ -154,7 +150,6 @@ impl Window { } /// Activate/Deactivate this window - // TODO: Add more helpers for Maximize? Minimize? Fullscreen? I dunno pub fn set_activated(&self, active: bool) -> bool { match self.0.toplevel { Kind::Xdg(ref t) => t diff --git a/src/wayland/compositor/mod.rs b/src/wayland/compositor/mod.rs index 9d35d7c..08f2d53 100644 --- a/src/wayland/compositor/mod.rs +++ b/src/wayland/compositor/mod.rs @@ -449,7 +449,7 @@ mod tests { #[test] fn region_attributes_empty() { let region = RegionAttributes { rects: vec![] }; - assert_eq!(region.contains((0, 0)), false); + assert!(!region.contains((0, 0))); } #[test] @@ -458,7 +458,7 @@ mod tests { rects: vec![(RectangleKind::Add, Rectangle::from_loc_and_size((0, 0), (10, 10)))], }; - assert_eq!(region.contains((0, 0)), true); + assert!(region.contains((0, 0))); } #[test] @@ -473,8 +473,8 @@ mod tests { ], }; - assert_eq!(region.contains((0, 0)), false); - assert_eq!(region.contains((5, 5)), true); + assert!(!region.contains((0, 0))); + assert!(region.contains((5, 5))); } #[test] @@ -490,8 +490,8 @@ mod tests { ], }; - assert_eq!(region.contains((0, 0)), false); - assert_eq!(region.contains((5, 5)), true); - assert_eq!(region.contains((2, 2)), true); + assert!(!region.contains((0, 0))); + assert!(region.contains((5, 5))); + assert!(region.contains((2, 2))); } }