gardesk/gartop / a76c9ac

Browse files

fix gartk API compat: pixel_data(), remove InputEvent::Idle

Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
a76c9acc47b9dfe58a99f5317f9b588b40dfc69d
Parents
2681608
Tree
b32aa1a

1 changed file

StatusFile+-
M gartop/src/gui/app.rs 25 31
gartop/src/gui/app.rsmodified
@@ -1258,13 +1258,8 @@ impl App {
12581258
 
12591259
     /// Blit surface to window.
12601260
     fn blit(&mut self) -> Result<()> {
1261
-        let data = {
1262
-            let surface = self.renderer.surface_mut();
1263
-            let data_ref = surface
1264
-                .data()
1265
-                .map_err(|e| anyhow::anyhow!("Failed to get surface data: {}", e))?;
1266
-            data_ref.to_vec()
1267
-        };
1261
+        let data = self.renderer.pixel_data()
1262
+            .map_err(|e| anyhow::anyhow!("Failed to get surface data: {}", e))?;
12681263
 
12691264
         let conn = self.window.connection();
12701265
         conn.inner().put_image(
@@ -1423,7 +1418,7 @@ impl App {
14231418
     pub fn run(mut self) -> Result<()> {
14241419
         let config = EventLoopConfig {
14251420
             fps: 30,
1426
-            continuous_redraw: false,
1421
+            continuous_redraw: true,
14271422
         };
14281423
         let mut event_loop = EventLoop::new(&self.window, config)?;
14291424
 
@@ -1704,32 +1699,31 @@ impl App {
17041699
                     self.should_quit = true;
17051700
                 }
17061701
 
1707
-                InputEvent::Idle => {
1708
-                    // Clear stale jump pattern (1.5s timeout)
1709
-                    if let Some(t) = self.jump_time {
1710
-                        if t.elapsed().as_millis() > 1500 && !self.jump_pattern.is_empty() {
1711
-                            self.jump_pattern.clear();
1712
-                            self.jump_time = None;
1713
-                            ev_loop.request_redraw();
1714
-                        }
1715
-                    }
1702
+                _ => {}
1703
+            }
17161704
 
1717
-                    if self.last_refresh.elapsed().as_secs_f64() >= self.refresh_interval {
1718
-                        if self.daemon_available {
1719
-                            self.refresh_data();
1720
-                            self.update_header();
1721
-                            ev_loop.request_redraw();
1722
-                        } else {
1723
-                            self.daemon_available = Self::check_daemon();
1724
-                            if self.daemon_available {
1725
-                                ev_loop.request_redraw();
1726
-                            }
1727
-                            self.last_refresh = Instant::now();
1728
-                        }
1729
-                    }
1705
+            // Periodic tasks (run each frame via continuous_redraw)
1706
+            // Clear stale jump pattern (1.5s timeout)
1707
+            if let Some(t) = self.jump_time {
1708
+                if t.elapsed().as_millis() > 1500 && !self.jump_pattern.is_empty() {
1709
+                    self.jump_pattern.clear();
1710
+                    self.jump_time = None;
1711
+                    ev_loop.request_redraw();
17301712
                 }
1713
+            }
17311714
 
1732
-                _ => {}
1715
+            if self.last_refresh.elapsed().as_secs_f64() >= self.refresh_interval {
1716
+                if self.daemon_available {
1717
+                    self.refresh_data();
1718
+                    self.update_header();
1719
+                    ev_loop.request_redraw();
1720
+                } else {
1721
+                    self.daemon_available = Self::check_daemon();
1722
+                    if self.daemon_available {
1723
+                        ev_loop.request_redraw();
1724
+                    }
1725
+                    self.last_refresh = Instant::now();
1726
+                }
17331727
             }
17341728
 
17351729
             if ev_loop.needs_redraw() {