baseview 0.4.1

Low-level windowing system geared towards making audio plugin UIs.
Documentation
use crate::platform::x11::window_thread::WindowThreadShared;
use calloop::LoopSignal;
use std::sync::Arc;
use std::time::Duration;

#[derive(Clone)]
pub struct WindowWaker {
    pub(crate) loop_signal: LoopSignal,
    pub(crate) shared: Arc<WindowThreadShared>,
}

impl WindowWaker {
    pub fn request_redraw(&self) {
        self.request_redraw_after(Duration::ZERO)
    }

    pub fn request_redraw_after(&self, duration: Duration) {
        self.shared.request_redraw_after(duration);
        self.loop_signal.wakeup();
    }

    pub fn request_poll(&self) {
        self.shared.request_poll();
        self.loop_signal.wakeup();
    }
}