Browse Source

Avoid panic in bspwm thread on exit

Thomas Dy 7 năm trước cách đây
mục cha
commit
42d7c01877
1 tập tin đã thay đổi với 5 bổ sung10 xóa
  1. 5 10
      src/ui/bspwm.rs

+ 5 - 10
src/ui/bspwm.rs

@@ -36,6 +36,9 @@ impl Bspwm {
     }
 
     fn parse_bspwm(&mut self, line: &str) {
+        let (kind, line) = line.split_at(1);
+        if kind != "W" { return };
+
         let mut desktops = vec![];
         let elems = line.split(':');
 
@@ -138,16 +141,8 @@ fn monitor_thread(tx: widget::MessageSender) {
     loop {
         line.clear();
         reader.read_line(&mut line).ok().expect("Failed to read line");
-        let kind = line.remove(0);
-        let line = line.trim();
-
-        match kind {
-            'W' => {
-                let event = widget::Message::BspwmEvent(line.to_string());
-                tx.send(event).expect("Failed to send bswpm event")
-            },
-            _ => {}
-        }
+        let event = widget::Message::BspwmEvent(line.clone());
+        tx.send(event).ok();
     }
 }