gardesk/gartop / 091b5fc

Browse files

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

This reverts commit a76c9acc47b9dfe58a99f5317f9b588b40dfc69d.
Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
091b5fce75f17c26801c431884cb35fd5d2eb615
Parents
a76c9ac
Tree
0012c2c

1 changed file

StatusFile+-
M gartop/src/gui/app.rs 31 25
gartop/src/gui/app.rsmodified
@@ -1258,8 +1258,13 @@ impl App {
1258
 
1258
 
1259
     /// Blit surface to window.
1259
     /// Blit surface to window.
1260
     fn blit(&mut self) -> Result<()> {
1260
     fn blit(&mut self) -> Result<()> {
1261
-        let data = self.renderer.pixel_data()
1261
+        let data = {
1262
-            .map_err(|e| anyhow::anyhow!("Failed to get surface data: {}", e))?;
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
+        };
1263
 
1268
 
1264
         let conn = self.window.connection();
1269
         let conn = self.window.connection();
1265
         conn.inner().put_image(
1270
         conn.inner().put_image(
@@ -1418,7 +1423,7 @@ impl App {
1418
     pub fn run(mut self) -> Result<()> {
1423
     pub fn run(mut self) -> Result<()> {
1419
         let config = EventLoopConfig {
1424
         let config = EventLoopConfig {
1420
             fps: 30,
1425
             fps: 30,
1421
-            continuous_redraw: true,
1426
+            continuous_redraw: false,
1422
         };
1427
         };
1423
         let mut event_loop = EventLoop::new(&self.window, config)?;
1428
         let mut event_loop = EventLoop::new(&self.window, config)?;
1424
 
1429
 
@@ -1699,31 +1704,32 @@ impl App {
1699
                     self.should_quit = true;
1704
                     self.should_quit = true;
1700
                 }
1705
                 }
1701
 
1706
 
1702
-                _ => {}
1707
+                InputEvent::Idle => {
1703
-            }
1708
+                    // Clear stale jump pattern (1.5s timeout)
1704
-
1709
+                    if let Some(t) = self.jump_time {
1705
-            // Periodic tasks (run each frame via continuous_redraw)
1710
+                        if t.elapsed().as_millis() > 1500 && !self.jump_pattern.is_empty() {
1706
-            // Clear stale jump pattern (1.5s timeout)
1711
+                            self.jump_pattern.clear();
1707
-            if let Some(t) = self.jump_time {
1712
+                            self.jump_time = None;
1708
-                if t.elapsed().as_millis() > 1500 && !self.jump_pattern.is_empty() {
1713
+                            ev_loop.request_redraw();
1709
-                    self.jump_pattern.clear();
1714
+                        }
1710
-                    self.jump_time = None;
1715
+                    }
1711
-                    ev_loop.request_redraw();
1712
-                }
1713
-            }
1714
 
1716
 
1715
-            if self.last_refresh.elapsed().as_secs_f64() >= self.refresh_interval {
1717
+                    if self.last_refresh.elapsed().as_secs_f64() >= self.refresh_interval {
1716
-                if self.daemon_available {
1718
+                        if self.daemon_available {
1717
-                    self.refresh_data();
1719
+                            self.refresh_data();
1718
-                    self.update_header();
1720
+                            self.update_header();
1719
-                    ev_loop.request_redraw();
1721
+                            ev_loop.request_redraw();
1720
-                } else {
1722
+                        } else {
1721
-                    self.daemon_available = Self::check_daemon();
1723
+                            self.daemon_available = Self::check_daemon();
1722
-                    if self.daemon_available {
1724
+                            if self.daemon_available {
1723
-                        ev_loop.request_redraw();
1725
+                                ev_loop.request_redraw();
1726
+                            }
1727
+                            self.last_refresh = Instant::now();
1728
+                        }
1724
                     }
1729
                     }
1725
-                    self.last_refresh = Instant::now();
1726
                 }
1730
                 }
1731
+
1732
+                _ => {}
1727
             }
1733
             }
1728
 
1734
 
1729
             if ev_loop.needs_redraw() {
1735
             if ev_loop.needs_redraw() {