From a88a5cdf83db2789c703c06b3d11d771fe2f3a1b Mon Sep 17 00:00:00 2001 From: Konkitoman Date: Wed, 9 Aug 2023 19:15:35 +0300 Subject: [PATCH] Fix some warnings --- crates/eframe/src/lib.rs | 2 +- crates/eframe/src/native/epi_integration.rs | 2 +- crates/eframe/src/native/run.rs | 129 +++++++++----------- crates/egui-winit/src/lib.rs | 7 +- crates/egui/src/containers/window.rs | 62 ++++------ crates/egui/src/context.rs | 32 ++--- crates/egui/src/data/input.rs | 2 +- crates/egui/src/viewport.rs | 2 +- crates/egui_demo_lib/src/lib.rs | 1 + examples/confirm_exit/src/main.rs | 2 +- examples/viewports/src/main.rs | 20 +-- 11 files changed, 118 insertions(+), 143 deletions(-) diff --git a/crates/eframe/src/lib.rs b/crates/eframe/src/lib.rs index 147650482..b06fbe2d3 100644 --- a/crates/eframe/src/lib.rs +++ b/crates/eframe/src/lib.rs @@ -284,7 +284,7 @@ pub fn run_simple_native( if ctx.get_viewport_id() == ViewportId::MAIN { (self.update_fun)(ctx, frame); } else if let Some(render_function) = render { - render_function(ctx) + render_function(ctx); } } } diff --git a/crates/eframe/src/native/epi_integration.rs b/crates/eframe/src/native/epi_integration.rs index 4c83ec15b..055cd1566 100644 --- a/crates/eframe/src/native/epi_integration.rs +++ b/crates/eframe/src/native/epi_integration.rs @@ -9,7 +9,7 @@ use raw_window_handle::{HasRawDisplayHandle as _, HasRawWindowHandle as _}; #[cfg(feature = "accesskit")] use egui::accesskit; -use egui::{Context, NumExt as _, ViewportBuilder, ViewportId, ViewportRender}; +use egui::{NumExt as _, ViewportBuilder, ViewportId, ViewportRender}; #[cfg(feature = "accesskit")] use egui_winit::accesskit_winit; use egui_winit::{native_pixels_per_point, EventResponse, WindowSettings}; diff --git a/crates/eframe/src/native/run.rs b/crates/eframe/src/native/run.rs index 85008de85..00f07a7c9 100644 --- a/crates/eframe/src/native/run.rs +++ b/crates/eframe/src/native/run.rs @@ -234,8 +234,7 @@ fn run_and_return( window_id, windows_next_repaint_times .get(&window_id) - .map(|last| (*last).min(repaint_time)) - .unwrap_or(repaint_time), + .map_or(repaint_time, |last| (*last).min(repaint_time)), ); } EventResult::Exit => { @@ -248,7 +247,7 @@ fn run_and_return( } let mut next_repaint_time = Option::::None; - for (window_id, repaint_time) in windows_next_repaint_times.clone().iter() { + for (window_id, repaint_time) in &windows_next_repaint_times.clone() { if *repaint_time <= Instant::now() { if let Some(window) = winit_app.window(*window_id) { window.read().request_redraw(); @@ -259,11 +258,8 @@ fn run_and_return( control_flow.set_wait(); } } else { - next_repaint_time = Some( - next_repaint_time - .map(|last| last.min(*repaint_time)) - .unwrap_or(*repaint_time), - ); + next_repaint_time = + Some(next_repaint_time.map_or(*repaint_time, |last| last.min(*repaint_time))); } } @@ -372,8 +368,7 @@ fn run_and_exit(event_loop: EventLoop, mut winit_app: impl WinitApp + window_id, windows_next_repaint_times .get(&window_id) - .map(|last| (*last).min(repaint_time)) - .unwrap_or(repaint_time), + .map_or(repaint_time, |last| (*last).min(repaint_time)), ); } EventResult::Exit => { @@ -386,7 +381,7 @@ fn run_and_exit(event_loop: EventLoop, mut winit_app: impl WinitApp + } let mut next_repaint_time = Option::::None; - for (window_id, repaint_time) in windows_next_repaint_times.clone().iter() { + for (window_id, repaint_time) in &windows_next_repaint_times.clone() { if *repaint_time <= Instant::now() { if let Some(window) = winit_app.window(*window_id) { log::trace!("request_redraw"); @@ -395,11 +390,8 @@ fn run_and_exit(event_loop: EventLoop, mut winit_app: impl WinitApp + } control_flow.set_poll(); } else { - next_repaint_time = Some( - next_repaint_time - .map(|last| last.min(*repaint_time)) - .unwrap_or(*repaint_time), - ); + next_repaint_time = + Some(next_repaint_time.map_or(*repaint_time, |last| last.min(*repaint_time))); } } @@ -428,7 +420,6 @@ mod glow_integration { prelude::{GlDisplay, NotCurrentGlContextSurfaceAccessor, PossiblyCurrentGlContext}, surface::GlSurface, }; - use winit::{dpi::PhysicalSize, window::ResizeDirection}; use super::*; @@ -642,7 +633,7 @@ mod glow_integration { /// we presently assume that we will #[allow(unsafe_code)] fn on_resume(&mut self, event_loop: &EventLoopWindowTarget) -> Result<()> { - for (_, win) in self.windows.iter_mut() { + for win in self.windows.values_mut() { let mut win = win.write(); if win.gl_surface.is_some() { continue; @@ -727,7 +718,7 @@ mod glow_integration { /// only applies for android. but we basically drop surface + window and make context not current fn on_suspend(&mut self) -> Result<()> { log::debug!("received suspend event. dropping window and surface"); - for (_, window) in self.windows.iter_mut() { + for window in self.windows.values() { let mut window = window.write(); window.gl_surface.take(); window.window.take(); @@ -744,7 +735,7 @@ mod glow_integration { fn window(&self, viewport_id: ViewportId) -> Arc> { self.windows .get(&viewport_id) - .map(|w| w.clone()) + .cloned() .expect("winit window doesn't exist") } @@ -757,7 +748,7 @@ mod glow_integration { let height = std::num::NonZeroU32::new(physical_size.height.at_least(1)).unwrap(); if let Some(window) = self.windows.get(&viewport_id) { - let mut window = window.write(); + let window = window.read(); if let Some(gl_surface) = &window.gl_surface { self.current_gl_context = Some( self.current_gl_context @@ -859,7 +850,7 @@ mod glow_integration { .unwrap_or(&self.app_name), ); - let (mut gl_window, gl) = Self::create_glutin_windowed_context( + let (gl_window, gl) = Self::create_glutin_windowed_context( event_loop, storage.as_deref(), &self.app_name, @@ -1068,7 +1059,7 @@ mod glow_integration { break 'try_render; } } - Self::process_viewport_builders(glutin.clone(), output.viewports); + Self::process_viewport_builders(&glutin, output.viewports); egui_winit::process_viewport_commands( output.viewport_commands, *focused.read(), @@ -1099,7 +1090,7 @@ mod glow_integration { } fn process_viewport_builders( - glutin_ctx: Arc>, + glutin_ctx: &Arc>, mut viewports: Vec<( ViewportId, ViewportId, @@ -1210,11 +1201,11 @@ mod glow_integration { self.running .read() .as_ref() - .and_then(|r| r.glutin_ctx.read().window_maps.get(id).cloned()) + .and_then(|r| r.glutin_ctx.read().window_maps.get(id).copied()) } fn save_and_destroy(&mut self) { - if let Some(mut running) = self.running.write().take() { + if let Some(running) = self.running.write().take() { running.integration.write().save( running.app.write().as_mut(), &running @@ -1242,8 +1233,6 @@ mod glow_integration { puffin::GlobalProfiler::lock().new_frame(); crate::profile_scope!("frame"); - let running = self.running.clone(); - let integration = self.running.read().as_ref().unwrap().integration.clone(); let app = self.running.read().as_ref().unwrap().app.clone(); let glutin_ctx = self.running.read().as_ref().unwrap().glutin_ctx.clone(); @@ -1255,17 +1244,16 @@ mod glow_integration { let win = glutin_ctx.read().windows.get(&viewport_id).unwrap().clone(); if win.read().render.is_none() && viewport_id != ViewportId::MAIN { if let Some(win) = glutin_ctx.read().windows.get(&win.read().parent_id) { - win.read() - .window - .as_ref() - .map(|w| w.read().request_redraw()); + if let Some(w) = win.read().window.as_ref() { + w.read().request_redraw(); + } } return vec![]; } } let mut window_map = HashMap::default(); - for (id, window) in glutin_ctx.read().windows.iter() { + for (id, window) in &glutin_ctx.read().windows { if let Some(win) = &window.read().window { window_map.insert(*id, win.read().id()); } @@ -1276,7 +1264,7 @@ mod glow_integration { repaint_after, textures_delta, shapes, - mut viewports, + viewports, viewport_commands, }; @@ -1418,7 +1406,7 @@ mod glow_integration { } else { repaint_after .into_iter() - .flat_map(|(id, time)| { + .filter_map(|(id, time)| { if time.is_zero() { window_map.get(&id).map(|id| EventResult::RepaintNext(*id)) } else if let Some(repaint_after_instant) = @@ -1453,7 +1441,7 @@ mod glow_integration { } } - Self::process_viewport_builders(glutin_ctx.clone(), viewports); + Self::process_viewport_builders(&glutin_ctx, viewports); egui_winit::process_viewport_commands( viewport_commands, @@ -1556,7 +1544,7 @@ mod glow_integration { .write() .window_maps .get(window_id) - .cloned() + .copied() }) .flatten(); } @@ -1589,7 +1577,7 @@ mod glow_integration { .write() .windows .iter() - .flat_map(|(_, window)| { + .filter_map(|(_, window)| { if let Some(win) = window.read().window.as_ref() { let win = win.read(); if win.id() == *window_id { @@ -1601,7 +1589,7 @@ mod glow_integration { None } }) - .flat_map(|id| { + .filter_map(|id| { if id == ViewportId::MAIN { Some(()) } else { @@ -1621,7 +1609,7 @@ mod glow_integration { let event_response = 'res: { let glutin_ctx = running.glutin_ctx.read(); if let Some(viewport_id) = - glutin_ctx.window_maps.get(window_id).cloned() + glutin_ctx.window_maps.get(window_id).copied() { if let Some(viewport) = glutin_ctx.windows.get(&viewport_id).cloned() @@ -1665,14 +1653,14 @@ mod glow_integration { )) => { if let Some(running) = self.running.read().as_ref() { let glutin_ctx = running.glutin_ctx.read(); - if let Some(viewport_id) = glutin_ctx.window_maps.get(window_id).cloned() { + if let Some(viewport_id) = glutin_ctx.window_maps.get(window_id).copied() { if let Some(viewport) = glutin_ctx.windows.get(&viewport_id).cloned() { let mut viewport = viewport.write(); running.integration.write().on_accesskit_action_request( request.clone(), window_id, viewport.egui_winit.as_mut().unwrap(), - ) + ); } } // As a form of user input, accessibility actions should @@ -1828,13 +1816,14 @@ mod wgpu_integration { for (id, (window, state, _, _, builder)) in running.windows.write().iter_mut() { if window.is_none() { - if let Ok(new_window) = create_winit_window_builder(&builder).build(event_loop) - { + if let Ok(new_window) = create_winit_window_builder(builder).build(event_loop) { running.windows_id.insert(new_window.id(), *id); - pollster::block_on( + if let Err(err) = pollster::block_on( running.painter.write().set_window(*id, Some(&new_window)), - ); + ) { + log::error!("on set_window: viewport_id {id} {err}"); + } *window = Some(Arc::new(RwLock::new(new_window))); *state.write() = Some(egui_winit::State::new(event_loop)); } @@ -1844,10 +1833,10 @@ mod wgpu_integration { fn set_window(&mut self, id: ViewportId) -> std::result::Result<(), egui_wgpu::WgpuError> { if let Some(running) = &mut self.running { - if let Some((window, _, _, _, _)) = running.windows.read().get(&id) { - window.as_ref().map(|w| { - pollster::block_on(running.painter.write().set_window(id, Some(&w.read()))) - }); + if let Some((Some(window), _, _, _, _)) = running.windows.read().get(&id) { + return pollster::block_on( + running.painter.write().set_window(id, Some(&window.read())), + ); } } Ok(()) @@ -1994,9 +1983,11 @@ mod wgpu_integration { }, ); - pollster::block_on( + if let Err(err) = pollster::block_on( _painter.write().set_window(viewport_id, Some(&win)), - ); + ){ + log::error!("when rendering viewport_id: {viewport_id}, set_window Error {err}"); + } let clipped_primitives = egui_ctx.tessellate(output.shapes); _painter.write().paint_and_update_textures( @@ -2024,12 +2015,12 @@ mod wgpu_integration { let mut viewports = output.viewports; let mut active_viewports_ids = vec![ViewportId::MAIN]; - viewports.retain_mut(|(id, parent, builder, render)| { + viewports.retain_mut(|(id, parent, _builder, render)| { if let Some(w) = _windows.write().get_mut(id) { w.2 = render.clone(); w.3 = *parent; active_viewports_ids.push(*id); - return false; + false } else { true } @@ -2075,10 +2066,8 @@ mod wgpu_integration { } fn is_focused(&self, window_id: winit::window::WindowId) -> bool { - if let Some(focus) = self.is_focused.read().clone() { - self.get_window_id(&window_id) - .map(|i| i == focus) - .unwrap_or(false) + if let Some(focus) = *self.is_focused.read() { + self.get_window_id(&window_id).map_or(false, |i| i == focus) } else { false } @@ -2119,7 +2108,7 @@ mod wgpu_integration { running .integration .write() - .save(running.app.as_mut(), &*window.read()); + .save(running.app.as_mut(), &window.read()); } #[cfg(feature = "glow")] @@ -2159,7 +2148,9 @@ mod wgpu_integration { // This is used to not render a viewport if is sync if viewport_id != ViewportId::MAIN && render.is_none() { if let Some(window) = running.windows.read().get(&parent_viewport_id) { - window.0.as_ref().map(|w| w.read().request_redraw()); + if let Some(w) = window.0.as_ref() { + w.read().request_redraw(); + } } return vec![]; } @@ -2179,7 +2170,7 @@ mod wgpu_integration { viewport_commands, } = integration.write().update( app.as_mut(), - &*window.read(), + &window.read(), state.write().as_mut().unwrap(), render.clone(), viewport_id, @@ -2217,12 +2208,12 @@ mod wgpu_integration { let mut active_viewports_ids = vec![ViewportId::MAIN]; - viewports.retain_mut(|(id, parent, builder, render)| { + viewports.retain_mut(|(id, parent, _builder, render)| { if let Some(w) = windows.write().get_mut(id) { w.2 = render.clone(); w.3 = *parent; active_viewports_ids.push(*id); - return false; + false } else { true } @@ -2308,7 +2299,7 @@ mod wgpu_integration { winit::event::Event::Resumed => { if let Some(running) = &self.running { if running.windows.read().get(&ViewportId::MAIN).is_none() { - let window = Self::create_window( + let _ = Self::create_window( event_loop, running.integration.read().frame.storage(), &self.app_name, @@ -2382,7 +2373,7 @@ mod wgpu_integration { // See: https://github.com/rust-windowing/winit/issues/208 // This solves an issue where the app would panic when minimizing on Windows. if let Some(viewport_id) = - running.windows_id.get(window_id).cloned() + running.windows_id.get(window_id).copied() { if physical_size.width > 0 && physical_size.height > 0 { running.painter.write().on_window_resized( @@ -2398,7 +2389,7 @@ mod wgpu_integration { .. } => { if let Some(viewport_id) = - running.windows_id.get(window_id).cloned() + running.windows_id.get(window_id).copied() { repaint_asap = true; running.painter.write().on_window_resized( @@ -2488,7 +2479,7 @@ mod wgpu_integration { fn get_window_id(&self, id: &winit::window::WindowId) -> Option { self.running .as_ref() - .and_then(|r| r.windows_id.get(id).cloned()) + .and_then(|r| r.windows_id.get(id).copied()) } } @@ -2542,7 +2533,7 @@ fn create_winit_window_builder(builder: &ViewportBuilder) -> winit::window::Wind .with_fullscreen( builder .fullscreen - .then(|| winit::window::Fullscreen::Borderless(None)), + .then_some(winit::window::Fullscreen::Borderless(None)), ) .with_enabled_buttons( WindowButtons::MAXIMIZE @@ -2580,7 +2571,7 @@ fn create_winit_window_builder(builder: &ViewportBuilder) -> winit::window::Wind rgba: icon.2, width: icon.0, height: icon.1, - })) + })); } window_builder diff --git a/crates/egui-winit/src/lib.rs b/crates/egui-winit/src/lib.rs index 25cc32438..3fa0e6224 100644 --- a/crates/egui-winit/src/lib.rs +++ b/crates/egui-winit/src/lib.rs @@ -920,7 +920,8 @@ pub fn process_viewport_commands( // if this is not checked on x11 the input will be permanently taken until the app is killed! if let Some(focus) = focused { if focus == viewport_id { - win.drag_window(); + // TODO possibile return the error to `egui::Context` + let _ = win.drag_window(); } } } @@ -930,10 +931,10 @@ pub fn process_viewport_commands( win.set_inner_size(PhysicalSize::new(width, height)); } egui::ViewportCommand::Resize(top, bottom, right, left) => { - win.drag_resize_window(match (top, bottom, right, left) { + // TODO posibile return the error to `egui::Context` + let _ = win.drag_resize_window(match (top, bottom, right, left) { (true, false, false, false) => ResizeDirection::North, (false, true, false, false) => ResizeDirection::South, - (false, false, true, false) => ResizeDirection::East, (false, false, false, true) => ResizeDirection::West, (true, false, true, false) => ResizeDirection::NorthEast, (false, true, true, false) => ResizeDirection::SouthEast, diff --git a/crates/egui/src/containers/window.rs b/crates/egui/src/containers/window.rs index 34fbdb6d7..efbb0e3a4 100644 --- a/crates/egui/src/containers/window.rs +++ b/crates/egui/src/containers/window.rs @@ -296,7 +296,7 @@ impl<'open> Window<'open> { #[inline] pub fn show_async(self, ctx: &Context, add_contents: impl Fn(&mut Ui) + Send + Sync + 'static) { - self.show_dyn_async(ctx, Box::new(add_contents)) + self.show_dyn_async(ctx, Box::new(add_contents)); } fn show_dyn<'a, R>( @@ -447,12 +447,9 @@ impl<'open> Window<'open> { area_id.with("frame_resize"), last_frame_outer_rect, ) - .and_then(|window_interaction| { + .map(|window_interaction| { // Calculate roughly how much larger the window size is compared to the inner rect - let pointer_pos = ctx.input(|i| i.pointer.interact_pos())?; - let mut rect = window_interaction.start_rect; // prevent drift - window_interaction.set_cursor(ctx); if window_interaction.is_resize() { ctx.viewport_command( @@ -464,12 +461,11 @@ impl<'open> Window<'open> { window_interaction.left, ), ); - } else { - if ctx.input(|i| i.pointer.primary_pressed()) {} + } else if ctx.input(|i| i.pointer.primary_pressed()) { } ctx.memory_mut(|mem| mem.areas.move_to_top(area_layer_id)); - Some(window_interaction) + window_interaction }) } else { None @@ -488,8 +484,6 @@ impl<'open> Window<'open> { let mut frame = frame.begin(&mut area_content_ui); let title_bar = if with_title_bar { - let mut tmp_embedded = is_embedded; - let title_bar = show_title_bar( &mut frame.content_ui, title, @@ -499,11 +493,6 @@ impl<'open> Window<'open> { area_id, ); - if tmp_embedded != is_embedded { - area_content_ui.data_mut(|data| { - data.insert_persisted(area_id.with("_embedded"), tmp_embedded) - }); - } resize.min_size.x = resize.min_size.x.at_least(title_bar.rect.width()); // Prevent making window smaller than title bar width Some(title_bar) } else { @@ -526,7 +515,7 @@ impl<'open> Window<'open> { }) .map_or((None, None), |ir| (Some(ir.inner), Some(ir.response))); if let Some(content_response) = &content_response { - size = content_response.rect.size() + size = content_response.rect.size(); } let outer_rect = frame.end(&mut area_content_ui).rect; @@ -605,12 +594,11 @@ impl<'open> Window<'open> { ctx.request_repaint_viewport(ctx.get_parent_viewport_id()); } - return Some(InnerResponse { + Some(InnerResponse { inner: content_inner, response: full_response, - }); + }) }); - return None; } } let frame = frame.unwrap_or_else(|| Frame::window(&ctx.style())); @@ -680,8 +668,6 @@ impl<'open> Window<'open> { let mut frame = frame.begin(&mut area_content_ui); let title_bar = if with_title_bar { - let mut tmp_embedded = is_embedded; - let title_bar = show_title_bar( &mut frame.content_ui, title, @@ -713,7 +699,7 @@ impl<'open> Window<'open> { }) .map_or((None, None), |ir| (Some(ir.inner), Some(ir.response))); if let Some(content_response) = &content_response { - size = content_response.rect.size() + size = content_response.rect.size(); } let outer_rect = frame.end(&mut area_content_ui).rect; @@ -771,7 +757,7 @@ impl<'open> Window<'open> { Some(inner_response) } - fn show_dyn_async<'a>(self, ctx: &Context, add_contents: Box) { + fn show_dyn_async(self, ctx: &Context, add_contents: Box) { let Window { title, mut open, @@ -915,12 +901,9 @@ impl<'open> Window<'open> { area_id.with("frame_resize"), last_frame_outer_rect, ) - .and_then(|window_interaction| { + .map(|window_interaction| { // Calculate roughly how much larger the window size is compared to the inner rect - let pointer_pos = ctx.input(|i| i.pointer.interact_pos())?; - let mut rect = window_interaction.start_rect; // prevent drift - window_interaction.set_cursor(ctx); if window_interaction.is_resize() { ctx.viewport_command( @@ -932,12 +915,11 @@ impl<'open> Window<'open> { window_interaction.left, ), ); - } else { - if ctx.input(|i| i.pointer.primary_pressed()) {} + } else if ctx.input(|i| i.pointer.primary_pressed()) { } ctx.memory_mut(|mem| mem.areas.move_to_top(area_layer_id)); - Some(window_interaction) + window_interaction }) } else { None @@ -950,7 +932,7 @@ impl<'open> Window<'open> { let mut size = Vec2::new(1.0, 1.0); - let content_inner = { + let _content_inner = { // BEGIN FRAME -------------------------------- let frame_stroke = frame.stroke; let mut frame = frame.begin(&mut area_content_ui); @@ -979,15 +961,15 @@ impl<'open> Window<'open> { } if scroll.has_any_bar() { - scroll.show(ui, |ui| add_contents(ui)).inner + scroll.show(ui, |ui| add_contents(ui)); } else { - add_contents(ui) + add_contents(ui); } - }) + }); }) .map_or((None, None), |ir| (Some(ir.inner), Some(ir.response))); if let Some(content_response) = &content_response { - size = content_response.rect.size() + size = content_response.rect.size(); } let outer_rect = frame.end(&mut area_content_ui).rect; @@ -1159,15 +1141,15 @@ impl<'open> Window<'open> { } if scroll.has_any_bar() { - scroll.show(ui, |ui| add_contents(ui)).inner + scroll.show(ui, |ui| add_contents(ui)); } else { - add_contents(ui) + add_contents(ui); } - }) + }); }) .map_or((None, None), |ir| (Some(ir.inner), Some(ir.response))); if let Some(content_response) = &content_response { - size = content_response.rect.size() + size = content_response.rect.size(); } let outer_rect = frame.end(&mut area_content_ui).rect; @@ -1218,7 +1200,7 @@ impl<'open> Window<'open> { let full_response = area.end(ctx, area_content_ui); ctx.data_mut(|data| data.insert_temp(area_id.with("size"), size)); - let inner_response = InnerResponse { + let _inner_response = InnerResponse { inner: content_inner, response: full_response, }; diff --git a/crates/egui/src/context.rs b/crates/egui/src/context.rs index 0f9517353..a9befe8a1 100644 --- a/crates/egui/src/context.rs +++ b/crates/egui/src/context.rs @@ -105,7 +105,7 @@ impl Repaint { < self .repaint_after .get(&viewport_id) - .cloned() + .copied() .unwrap_or(std::time::Duration::MAX) { self.repaint_after.insert(viewport_id, after); @@ -130,14 +130,14 @@ impl Repaint { fn end_frame( &mut self, viewport_id: ViewportId, - viewports: Vec, + viewports: &[ViewportId], ) -> Vec<(ViewportId, std::time::Duration)> { // if repaint_requests is greater than zero. just set the duration to zero for immediate // repaint. if there's no repaint requests, then we can use the actual repaint_after instead. let repaint_after = if self .repaint_requests .get(&viewport_id) - .cloned() + .copied() .unwrap_or(0) > 0 { @@ -149,7 +149,7 @@ impl Repaint { } else { self.repaint_after .get(&viewport_id) - .cloned() + .copied() .unwrap_or(std::time::Duration::MAX) }; self.repaint_after.insert(viewport_id, repaint_after); @@ -385,14 +385,14 @@ impl ContextImpl { // // In the case of this viewport is the main viewport will be `ViewportId::MAIN` pub(crate) fn get_viewport_id(&self) -> ViewportId { - self.frame_stack.last().cloned().unwrap_or_default().0 + self.frame_stack.last().copied().unwrap_or_default().0 } // Return the `ViewportId` of his parent // // In the case of this viewport is the main viewport will be `ViewportId::MAIN` pub(crate) fn get_parent_viewport_id(&self) -> ViewportId { - self.frame_stack.last().cloned().unwrap_or_default().1 + self.frame_stack.last().copied().unwrap_or_default().1 } } @@ -471,7 +471,7 @@ impl Default for Context { s.write(|ctx| { ctx.render_sync = Some(Arc::new(Box::new( move |_builder, _viewport_id, _parent_viewport_id, render| render(&clone), - ))) + ))); }); s @@ -1133,7 +1133,7 @@ impl Context { } pub fn request_repaint_viewport(&self, id: ViewportId) { - self.write(|ctx| ctx.repaint.request_repaint(id)) + self.write(|ctx| ctx.repaint.request_repaint(id)); } /// Request repaint after at most the specified duration elapses. @@ -1169,12 +1169,12 @@ impl Context { // Maybe we can check if duration is ZERO, and call self.request_repaint()? self.write(|ctx| { ctx.repaint - .request_repaint_after(duration, ctx.get_viewport_id()) + .request_repaint_after(duration, ctx.get_viewport_id()); }); } pub fn request_repaint_viewport_after(&self, duration: std::time::Duration, id: ViewportId) { - self.write(|ctx| ctx.repaint.request_repaint_after(duration, id)) + self.write(|ctx| ctx.repaint.request_repaint_after(duration, id)); } /// For integrations: this callback will be called when an egui user calls [`Self::request_repaint`]. @@ -1473,14 +1473,14 @@ impl Context { }); let repaint_after = - self.write(|ctx| ctx.repaint.end_frame(ctx.get_viewport_id(), viewports)); + self.write(|ctx| ctx.repaint.end_frame(ctx.get_viewport_id(), &viewports)); let shapes = self.drain_paint_lists(); // This is used for, // If there are no viewport that contains the current viewpor that viewport needs to be destroyed! let avalibile_viewports = self.read(|ctx| { let mut avalibile_viewports = vec![ViewportId::MAIN]; - for (_, (_, id, _, _, _)) in ctx.viewports.iter() { + for (_, id, _, _, _) in ctx.viewports.values() { avalibile_viewports.push(*id); } avalibile_viewports @@ -1499,7 +1499,7 @@ impl Context { viewports.push((*id, *parent, builder.clone(), render.clone())); (out || viewport_id != *parent) && avalibile_viewports.contains(parent) - }) + }); }); // This is used to resume the last frame! @@ -1514,7 +1514,7 @@ impl Context { ctx.layer_rects_prev_viewports.remove(&viewport_id).unwrap(); ctx.layer_rects_this_frame = ctx.layer_rects_this_viewports.remove(&viewport_id).unwrap(); - ctx.memory.resume_frame(viewport_id) + ctx.memory.resume_frame(viewport_id); }); } FullOutput { @@ -2184,11 +2184,11 @@ impl Context { } pub fn set_desktop(&self, value: bool) { - self.write(|ctx| ctx.is_desktop = value) + self.write(|ctx| ctx.is_desktop = value); } pub fn viewport_command(&self, id: ViewportId, command: ViewportCommand) { - self.write(|ctx| ctx.viewport_commands.push((id, command))) + self.write(|ctx| ctx.viewport_commands.push((id, command))); } pub fn create_viewport( diff --git a/crates/egui/src/data/input.rs b/crates/egui/src/data/input.rs index 21bb852fd..466cdc16e 100644 --- a/crates/egui/src/data/input.rs +++ b/crates/egui/src/data/input.rs @@ -306,7 +306,7 @@ pub enum Event { WindowEvent(WindowEvent), } -#[derive(Clone, Debug, PartialEq)] +#[derive(Clone, Debug, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] pub enum WindowEvent { CloseRequested, diff --git a/crates/egui/src/viewport.rs b/crates/egui/src/viewport.rs index bfc84b31b..866d5bd2a 100644 --- a/crates/egui/src/viewport.rs +++ b/crates/egui/src/viewport.rs @@ -159,7 +159,7 @@ impl ViewportBuilder { } } -#[derive(Clone, PartialEq)] +#[derive(Clone, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] pub enum ViewportCommand { Drag, diff --git a/crates/egui_demo_lib/src/lib.rs b/crates/egui_demo_lib/src/lib.rs index 758b0adf2..13ff82bca 100644 --- a/crates/egui_demo_lib/src/lib.rs +++ b/crates/egui_demo_lib/src/lib.rs @@ -19,6 +19,7 @@ pub mod syntax_highlighting; pub use color_test::ColorTest; pub use demo::DemoWindows; +#[cfg(test)] use egui::ViewportId; // ---------------------------------------------------------------------------- diff --git a/examples/confirm_exit/src/main.rs b/examples/confirm_exit/src/main.rs index 24aee6932..98c142fa4 100644 --- a/examples/confirm_exit/src/main.rs +++ b/examples/confirm_exit/src/main.rs @@ -58,7 +58,7 @@ impl eframe::App for MyApp { }); }); if self.allowed_to_close { - frame.close() + frame.close(); } } } diff --git a/examples/viewports/src/main.rs b/examples/viewports/src/main.rs index a64368c6d..81fb5d786 100644 --- a/examples/viewports/src/main.rs +++ b/examples/viewports/src/main.rs @@ -68,7 +68,7 @@ fn main() { ui.label(format!("Value: {value}")); } - egui::CollapsingHeader::new("Show Test1").show(ui, |ui| { + egui::CollapsingHeader::new("Show Test1").show(ui, |_ui| { egui::Window::new("Test1") .default_embedded(false) .show(ctx, |ui| { @@ -86,7 +86,7 @@ fn main() { data.insert_persisted( Id::new("Test1").with("_embedded"), embedded, - ) + ); }); } if to_repair { @@ -103,12 +103,12 @@ fn main() { ctx.viewport_command( ctx.get_viewport_id(), egui::ViewportCommand::Drag, - ) + ); } else { ctx.memory_mut(|mem| { mem.set_dragged_id( egui::Id::new("Test1").with("frame_resize"), - ) + ); }); } } @@ -120,7 +120,7 @@ fn main() { ); }); }); - egui::CollapsingHeader::new("Async Test2").show(ui, |ui| { + egui::CollapsingHeader::new("Async Test2").show(ui, |_ui| { egui::Window::new("Test2").show_async(ctx, move |ui| { ui.label(format!("Frame: {}", ui.ctx().frame_nr())); @@ -138,16 +138,16 @@ fn main() { ctx.viewport_command( ctx.get_viewport_id(), egui::ViewportCommand::Drag, - ) + ); } else { ctx.memory_mut(|mem| { - mem.set_dragged_id(egui::Id::new("Test2").with("frame_resize")) + mem.set_dragged_id(egui::Id::new("Test2").with("frame_resize")); }); } } }); }); - egui::CollapsingHeader::new("Async Test3").show(ui, |ui| { + egui::CollapsingHeader::new("Async Test3").show(ui, |_ui| { egui::Window::new("Test3").show_async(ctx, move |ui| { ui.label(format!("Frame: {}", ui.ctx().frame_nr())); let ctx = ui.ctx().clone(); @@ -161,10 +161,10 @@ fn main() { ctx.viewport_command( ctx.get_viewport_id(), egui::ViewportCommand::Drag, - ) + ); } else { ctx.memory_mut(|mem| { - mem.set_dragged_id(egui::Id::new("Test3").with("frame_resize")) + mem.set_dragged_id(egui::Id::new("Test3").with("frame_resize")); }); } }