diff --git a/adapters/src/wayland/surfaces/display_metrics.rs b/adapters/src/wayland/surfaces/display_metrics.rs index 7a6b581..968a910 100644 --- a/adapters/src/wayland/surfaces/display_metrics.rs +++ b/adapters/src/wayland/surfaces/display_metrics.rs @@ -1,19 +1,13 @@ use log::info; use slint::PhysicalSize; use std::cell::RefCell; -use std::rc::{Rc, Weak}; - -pub trait DisplayMetricsObserver { - fn on_scale_factor_changed(&self, new_scale: f32); - fn on_output_size_changed(&self, new_size: PhysicalSize); -} +use std::rc::Rc; pub struct DisplayMetrics { scale_factor: f32, output_size: PhysicalSize, surface_size: PhysicalSize, has_fractional_scale: bool, - observers: RefCell>>, } impl DisplayMetrics { @@ -24,7 +18,6 @@ impl DisplayMetrics { output_size: PhysicalSize::new(0, 0), surface_size: PhysicalSize::new(0, 0), has_fractional_scale, - observers: RefCell::new(Vec::new()), } } @@ -54,11 +47,6 @@ impl DisplayMetrics { self.has_fractional_scale } - pub fn register_observer(&self, observer: Weak) { - self.observers.borrow_mut().push(observer); - self.cleanup_dead_observers(); - } - #[allow(clippy::cast_precision_loss)] pub fn update_scale_factor(&mut self, scale_120ths: u32) -> f32 { let new_scale_factor = scale_120ths as f32 / 120.0; @@ -71,7 +59,6 @@ impl DisplayMetrics { ); self.scale_factor = new_scale_factor; self.recalculate_surface_size(); - self.notify_scale_factor_changed(new_scale_factor); } new_scale_factor @@ -85,7 +72,6 @@ impl DisplayMetrics { ); self.output_size = output_size; self.recalculate_surface_size(); - self.notify_output_size_changed(output_size); } } @@ -106,34 +92,6 @@ impl DisplayMetrics { ); } } - - fn notify_scale_factor_changed(&self, new_scale: f32) { - self.observers.borrow_mut().retain(|observer| { - if let Some(obs) = observer.upgrade() { - obs.on_scale_factor_changed(new_scale); - true - } else { - false - } - }); - } - - fn notify_output_size_changed(&self, new_size: PhysicalSize) { - self.observers.borrow_mut().retain(|observer| { - if let Some(obs) = observer.upgrade() { - obs.on_output_size_changed(new_size); - true - } else { - false - } - }); - } - - fn cleanup_dead_observers(&self) { - self.observers - .borrow_mut() - .retain(|obs| obs.upgrade().is_some()); - } } pub type SharedDisplayMetrics = Rc>; diff --git a/adapters/src/wayland/surfaces/popup_manager.rs b/adapters/src/wayland/surfaces/popup_manager.rs index 065fc1d..a699ad4 100644 --- a/adapters/src/wayland/surfaces/popup_manager.rs +++ b/adapters/src/wayland/surfaces/popup_manager.rs @@ -1,7 +1,7 @@ use crate::errors::{LayerShikaError, Result}; use crate::rendering::egl::context::EGLContext; use crate::rendering::femtovg::popup_window::PopupWindow; -use crate::wayland::surfaces::display_metrics::{DisplayMetricsObserver, SharedDisplayMetrics}; +use crate::wayland::surfaces::display_metrics::SharedDisplayMetrics; use layer_shika_domain::value_objects::popup_config::PopupConfig; use layer_shika_domain::value_objects::popup_positioning_mode::PopupPositioningMode; use layer_shika_domain::value_objects::popup_request::{PopupHandle, PopupRequest}; @@ -487,16 +487,3 @@ impl PopupManager { } } } - -impl DisplayMetricsObserver for PopupManager { - fn on_scale_factor_changed(&self, new_scale: f32) { - info!("PopupManager received scale factor change: {}", new_scale); - for popup in self.state.borrow().popups.values() { - popup.window.set_scale_factor(new_scale); - } - } - - fn on_output_size_changed(&self, new_size: PhysicalSize) { - info!("PopupManager received output size change: {:?}", new_size); - } -} diff --git a/adapters/src/wayland/surfaces/surface_state.rs b/adapters/src/wayland/surfaces/surface_state.rs index 30f93a5..9ded320 100644 --- a/adapters/src/wayland/surfaces/surface_state.rs +++ b/adapters/src/wayland/surfaces/surface_state.rs @@ -209,10 +209,6 @@ impl WindowState { } pub fn set_popup_manager(&mut self, popup_manager: Rc) { - self.display_metrics - .borrow() - .register_observer(Rc::downgrade(&popup_manager) as _); - self.event_context.set_popup_manager(popup_manager); }