summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatias Linares <matiaslina@openmailbox.org>2015-11-22 20:07:01 -0300
committerMatias Linares <matiaslina@openmailbox.org>2015-11-22 20:07:01 -0300
commite99ad3688971fde57cf34d4a9f5dd89256c7ab78 (patch)
tree82d52e2589155c823b163fa1302c85b49330df6b
parent83b7d0cb4f30c95ce6f27d2c0944727d75eb6e5e (diff)
downloaddotwm-e99ad3688971fde57cf34d4a9f5dd89256c7ab78.tar.gz
Move the file descriptor of the socket to the select event.
-rw-r--r--src/event.rs5
-rw-r--r--src/main.rs4
2 files changed, 4 insertions, 5 deletions
diff --git a/src/event.rs b/src/event.rs
index f683c63..6f5c427 100644
--- a/src/event.rs
+++ b/src/event.rs
@@ -32,6 +32,7 @@ use std::fmt;
use std::ptr;
use std::mem::uninitialized;
use std::cmp::max;
+use std::os::unix::io::AsRawFd;
use safe_x11::next_xevent;
@@ -73,13 +74,13 @@ impl fmt::Debug for Event {
}
}
-pub unsafe fn select_event(display: *mut Display, x11fd: c_int, socket_fd: c_int,
- listener: &UnixListener) -> Event {
+pub unsafe fn select_event(display: *mut Display, x11fd: c_int, listener: &UnixListener) -> Event {
// Return right now if there're some XEvent on the queue
if XPending(display) > 0 {
return next_event(display);
}
+ let socket_fd = listener.as_raw_fd();
let mut read_fdset: fd_set = uninitialized();
FD_ZERO(&mut read_fdset);
diff --git a/src/main.rs b/src/main.rs
index cd64f87..27c1a46 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -21,7 +21,6 @@ use x11::xlib;
use x11::xlib::XEvent;
use x11::keysym;
-use std::os::unix::io::AsRawFd;
use std::io::{Read,Write};
use unix_socket::UnixListener;
@@ -46,13 +45,12 @@ fn main() {
add_binding(&mut dotwm, &mut bindings, keysym::XK_q, xlib::Mod4Mask | xlib::ShiftMask, quit_dotwm, &[]);
let listener = UnixListener::bind("./dotwm.sock").unwrap();
- let socket_fd = listener.as_raw_fd();
exec_cmd("./autostart", &[]).unwrap();
// Main loop
loop {
- let event = unsafe { select_event(dotwm.display, x11_fd, socket_fd, &listener) };
+ let event = unsafe { select_event(dotwm.display, x11_fd, &listener) };
match event {
Event::Key(mut e, true) => {
let keysym = unsafe { xlib::XLookupKeysym(&mut e, 0) as u32 };