system settings
git clone https://git.lucas.co/cce-system-interface.git
Move scroll event logging to program exit handler using memory buffering
src/input_handler.rs | 8 ++++----
src/main.rs | 15 +++++++++++++++
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/src/input_handler.rs b/src/input_handler.rs
index 76ad706..a94e641 100644
--- a/src/input_handler.rs
+++ b/src/input_handler.rs
@@ -665,10 +665,10 @@ impl SystemInterface {
}
pub(crate) fn handle_mouse_wheel_internal(&mut self, delta: &cce_ui::widget::MouseScrollDelta, px: f32, py: f32) -> bool {
- if let Ok(mut file) = std::fs::OpenOptions::new().create(true).append(true).open("/tmp/cce-scroll-debug.log") {
- use std::io::Write;
- let _ = writeln!(file, "handle_mouse_wheel_internal: px={}, py={}, delta={:?}, sidebar_w={}", px, py, delta, self.sidebar_width);
- }
+ self.scroll_logs.push(format!(
+ "handle_mouse_wheel_internal: px={}, py={}, delta={:?}, sidebar_w={}",
+ px, py, delta, self.sidebar_width
+ ));
let s = 1.0f32;
if px >= self.sidebar_width * s {
let lx = px / s;
diff --git a/src/main.rs b/src/main.rs
index da70c19..92559ef 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -214,6 +214,7 @@ struct SystemInterface {
current_page_shared: std::sync::Arc<std::sync::atomic::AtomicU8>,
sender: calloop::channel::Sender<AppAction>,
ui_context: cce_ui::context::UiContext,
+ scroll_logs: Vec<String>,
}
impl cce_ui::engine::Application for SystemInterface {
@@ -322,6 +323,7 @@ impl cce_ui::engine::Application for SystemInterface {
current_page_shared,
sender,
ui_context: cce_ui::context::UiContext::new(),
+ scroll_logs: Vec::new(),
};
for page in &mut this.pages {
@@ -892,3 +894,16 @@ fn main() {
cce_ui::engine::run::<SystemInterface>();
}
+
+impl Drop for SystemInterface {
+ fn drop(&mut self) {
+ if !self.scroll_logs.is_empty() {
+ if let Ok(mut file) = std::fs::OpenOptions::new().create(true).append(true).open("/tmp/cce-scroll-debug.log") {
+ use std::io::Write;
+ for log in &self.scroll_logs {
+ let _ = writeln!(file, "{}", log);
+ }
+ }
+ }
+ }
+}