Kaynağa Gözat

Handle no active window

Thomas Dy 9 yıl önce
ebeveyn
işleme
b422b41d7a
1 değiştirilmiş dosya ile 7 ekleme ve 2 silme
  1. 7 2
      src/wm/ewmh.rs

+ 7 - 2
src/wm/ewmh.rs

@@ -44,8 +44,13 @@ impl<'a> EWMH<'a> {
     pub fn get_active_window(&self) -> xcb::Window {
         let cookie = xcb::get_property(&self.conn, false, self.root, self._NET_ACTIVE_WINDOW, xcb::ATOM_WINDOW, 0, 4);
         let reply = cookie.get_reply().unwrap();
-        let value: &xcb::Window = unsafe { mem::transmute(&(reply.value()[0])) };
-        *value
+        if reply.value_len() == 0 {
+            0
+        }
+        else {
+            let value: &xcb::Window = unsafe { mem::transmute(&(reply.value()[0])) };
+            *value
+        }
     }
 
     pub fn get_window_name(&self, win: xcb::Window) -> String {