소스 검색

Handle no active window

Thomas Dy 9 년 전
부모
커밋
b422b41d7a
1개의 변경된 파일7개의 추가작업 그리고 2개의 파일을 삭제
  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 {