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:
parent
7bb49fabfa
commit
3cc27a4d76
3 changed files with 11 additions and 7 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue