1
0
Fork 0
mirror of https://github.com/alacritty/alacritty.git synced 2024-11-18 13:55:23 -05:00

Set cursor only when its visibility changes

This commit is contained in:
Tuomas Siipola 2017-02-22 22:46:08 +02:00 committed by Joe Wilm
parent 7bb49fabfa
commit 3cc27a4d76
3 changed files with 11 additions and 7 deletions

View file

@ -231,8 +231,8 @@ impl Display {
self.tx.clone()
}
pub fn window(&self) -> &Window {
&self.window
pub fn window(&mut self) -> &mut Window {
&mut self.window
}
/// Process pending resize events

View file

@ -261,7 +261,7 @@ impl<N: Notify> Processor<N> {
pub fn process_events<'a>(
&mut self,
term: &'a FairMutex<Term>,
window: &Window
window: &mut Window
) -> MutexGuard<'a, Term> {
// Terminal is lazily initialized the first time an event is returned
// from the blocking WaitEventsIterator. Otherwise, the pty reader would

View file

@ -53,6 +53,7 @@ type Result<T> = ::std::result::Result<T, Error>;
/// Wraps the underlying windowing library to provide a stable API in Alacritty
pub struct Window {
glutin_window: glutin::Window,
cursor_visible: bool,
}
/// Threadsafe APIs for the window
@ -218,6 +219,7 @@ impl Window {
Ok(Window {
glutin_window: window,
cursor_visible: true,
})
}
@ -290,10 +292,12 @@ impl Window {
}
/// Set cursor visible
#[inline]
pub fn set_cursor_visible(&self, show: bool) {
self.glutin_window.set_cursor(if show { glutin::MouseCursor::Default }
else { glutin::MouseCursor::NoneCursor });
pub fn set_cursor_visible(&mut self, visible: bool) {
if visible != self.cursor_visible {
self.cursor_visible = visible;
self.glutin_window.set_cursor(if visible { glutin::MouseCursor::Default }
else { glutin::MouseCursor::NoneCursor });
}
}
}