Skip to content

Commit

Permalink
Expose public Window::set_mouse_cursor method (#161)
Browse files Browse the repository at this point in the history
The X11 backend has a full implementation of a `Window::set_mouse_cursor` method, but it isn't exposed via any public interface, which results in a lot of warnings for unused code. Add a public `set_mouse_cursor` method, along with stubbed-out versions in the Windows and macOS backends.
  • Loading branch information
micahrj authored Dec 17, 2023
1 parent 0976a9a commit 7d14a55
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 6 deletions.
8 changes: 6 additions & 2 deletions src/macos/window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ use raw_window_handle::{
};

use crate::{
Event, EventStatus, Size, WindowEvent, WindowHandler, WindowInfo, WindowOpenOptions,
WindowScalePolicy,
Event, EventStatus, MouseCursor, Size, WindowEvent, WindowHandler, WindowInfo,
WindowOpenOptions, WindowScalePolicy,
};

use super::keyboard::KeyboardState;
Expand Down Expand Up @@ -302,6 +302,10 @@ impl Window {
}
}

pub fn set_mouse_cursor(&mut self, _mouse_cursor: MouseCursor) {
todo!()
}

#[cfg(feature = "opengl")]
pub fn gl_context(&self) -> Option<&GlContext> {
self.gl_context.as_ref()
Expand Down
6 changes: 5 additions & 1 deletion src/win/window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ use raw_window_handle::{
const BV_WINDOW_MUST_CLOSE: UINT = WM_USER + 1;

use crate::{
Event, MouseButton, MouseEvent, PhyPoint, PhySize, ScrollDelta, Size, WindowEvent,
Event, MouseButton, MouseCursor, MouseEvent, PhyPoint, PhySize, ScrollDelta, Size, WindowEvent,
WindowHandler, WindowInfo, WindowOpenOptions, WindowScalePolicy,
};

Expand Down Expand Up @@ -765,6 +765,10 @@ impl Window<'_> {
self.state.deferred_tasks.borrow_mut().push_back(task);
}

pub fn set_mouse_cursor(&mut self, _mouse_cursor: MouseCursor) {
todo!()
}

#[cfg(feature = "opengl")]
pub fn gl_context(&self) -> Option<&GlContext> {
self.state.gl_context.as_ref()
Expand Down
6 changes: 5 additions & 1 deletion src/window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use raw_window_handle::{

use crate::event::{Event, EventStatus};
use crate::window_open_options::WindowOpenOptions;
use crate::Size;
use crate::{MouseCursor, Size};

#[cfg(target_os = "macos")]
use crate::macos as platform;
Expand Down Expand Up @@ -101,6 +101,10 @@ impl<'a> Window<'a> {
self.window.resize(size);
}

pub fn set_mouse_cursor(&mut self, cursor: MouseCursor) {
self.window.set_mouse_cursor(cursor);
}

/// If provided, then an OpenGL context will be created for this window. You'll be able to
/// access this context through [crate::Window::gl_context].
#[cfg(feature = "opengl")]
Expand Down
1 change: 0 additions & 1 deletion src/x11/window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,6 @@ pub struct Window {
window_id: u32,
window_info: WindowInfo,
visual_id: u32,
// FIXME: There's all this mouse cursor logic but it's never actually used, is this correct?
mouse_cursor: MouseCursor,

frame_interval: Duration,
Expand Down
1 change: 0 additions & 1 deletion src/x11/xcb_connection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ pub struct XcbConnection {

pub(crate) atoms: Atoms,

// FIXME: Same here, there's a ton of unused cursor machinery in here
pub(super) cursor_cache: HashMap<MouseCursor, u32>,
}

Expand Down

0 comments on commit 7d14a55

Please sign in to comment.