diff --git a/Cargo.toml b/Cargo.toml index 26f72be8b..181a357d3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -64,6 +64,9 @@ features = [ "x11rb_event_source", ] +[workspace.lints.clippy] +too_many_arguments = "allow" + ########################################################################yo😎########### [package] @@ -140,3 +143,6 @@ testing = [ "smithay/renderer_test", ] wlcs = ["testing"] + +[lints] +workspace = true diff --git a/src/api/window.rs b/src/api/window.rs index ef2931b22..44916994a 100644 --- a/src/api/window.rs +++ b/src/api/window.rs @@ -65,8 +65,6 @@ impl window_service_server::WindowService for WindowService { ) -> Result, Status> { let request = request.into_inner(); - tracing::info!(request = ?request); - let window_id = WindowId( request .window_id diff --git a/src/backend/udev.rs b/src/backend/udev.rs index 1233f509f..7db805c0f 100644 --- a/src/backend/udev.rs +++ b/src/backend/udev.rs @@ -51,7 +51,7 @@ use smithay::{ vulkan::{self, version::Version, PhysicalDevice}, SwapBuffersError, }, - desktop::utils::{send_frames_surface_tree, OutputPresentationFeedback}, + desktop::utils::OutputPresentationFeedback, input::pointer::CursorImageStatus, output::{Output, PhysicalProperties, Subpixel}, reexports::{ @@ -1414,17 +1414,15 @@ impl Udev { let _ = renderer.downscale_filter(self.downscale_filter); let pointer_images = &mut self.pointer_images; - let pointer_image = pointer_images + let (pointer_image, hotspot) = pointer_images .iter() - .find_map( - |(image, texture)| { - if image == &frame { - Some(texture.clone()) - } else { - None - } - }, - ) + .find_map(|(image, texture)| { + if image == &frame { + Some((texture.clone(), (frame.xhot as i32, frame.yhot as i32))) + } else { + None + } + }) .unwrap_or_else(|| { let texture = TextureBuffer::from_memory( &mut renderer, @@ -1437,8 +1435,9 @@ impl Udev { None, ) .expect("Failed to import cursor bitmap"); + let hotspot = (frame.xhot as i32, frame.yhot as i32); pointer_images.push((frame, texture.clone())); - texture + (texture, hotspot) }); let pointer_location = pinnacle @@ -1455,14 +1454,6 @@ impl Udev { if let CursorImageStatus::Surface(surface) = &pinnacle.cursor_status { if !surface.alive() { pinnacle.cursor_status = CursorImageStatus::default_named(); - } else { - send_frames_surface_tree( - surface, - output, - pinnacle.clock.now(), - Some(Duration::ZERO), - |_, _| None, - ); } } @@ -1499,6 +1490,7 @@ impl Udev { pointer_location, &mut pinnacle.cursor_status, pinnacle.dnd_icon.as_ref(), + hotspot.into(), &self.pointer_element, ); self.pointer_element.set_element_kind(element::Kind::Cursor); @@ -1513,6 +1505,7 @@ impl Udev { pointer_location, &mut pinnacle.cursor_status, pinnacle.dnd_icon.as_ref(), + hotspot.into(), &self.pointer_element, ); output_render_elements.extend(pointer_render_elements); diff --git a/src/backend/udev/gamma.rs b/src/backend/udev/gamma.rs index d870cd1aa..a263c5658 100644 --- a/src/backend/udev/gamma.rs +++ b/src/backend/udev/gamma.rs @@ -21,7 +21,6 @@ impl Udev { } None => PendingGammaChange::Restore, }; - tracing::info!("SET PENDING GAMMA WOO"); return Ok(()); } diff --git a/src/backend/winit.rs b/src/backend/winit.rs index a20213029..49b0884cc 100644 --- a/src/backend/winit.rs +++ b/src/backend/winit.rs @@ -304,6 +304,7 @@ impl Winit { pointer_location, &mut pinnacle.cursor_status, pinnacle.dnd_icon.as_ref(), + (0, 0).into(), // Nonsurface cursors are hidden &pointer_element, ); output_render_elements.extend(pointer_render_elements); diff --git a/src/render.rs b/src/render.rs index e3bea2402..b38f741cd 100644 --- a/src/render.rs +++ b/src/render.rs @@ -275,6 +275,7 @@ pub fn pointer_render_elements( pointer_location: Point, cursor_status: &mut CursorImageStatus, dnd_icon: Option<&WlSurface>, + fallback_hotspot: Point, pointer_element: &PointerElement<::TextureId>, ) -> Vec> { let mut output_render_elements = Vec::new(); @@ -296,7 +297,7 @@ pub fn pointer_render_elements( .hotspot }) } else { - (0, 0).into() + fallback_hotspot }; let cursor_pos = pointer_location - output_geometry.loc.to_f64() - cursor_hotspot.to_f64();