safex 0.0.5

Safe x11 binding for rust
Documentation
use crate::xlib::{AsRaw, Display};
use x11::xlib_xcb::*;

pub struct XCBConnection(*mut xcb_connection_t);

pub enum EventQueueOwner {
    XLibOwnsEventQueue = 0,
    XCBOwnsEventQueue = 1,
}

pub fn get_xcb_connection(display: &Display) -> XCBConnection {
    unsafe { XCBConnection(XGetXCBConnection(display.as_raw())) }
}

pub fn set_event_queue_owner(display: &Display, owner: EventQueueOwner) {
    unsafe {
        let owner = match owner {
            EventQueueOwner::XLibOwnsEventQueue => XEventQueueOwner::XlibOwnsEventQueue,
            EventQueueOwner::XCBOwnsEventQueue => XEventQueueOwner::XCBOwnsEventQueue,
        };

        XSetEventQueueOwner(display.as_raw(), owner);
    }
}