diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-02-16 14:54:49 -0700 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-02-16 14:54:49 -0700 |
commit | a848a00a1db2c57f59509efc4165d8e04e89bb53 (patch) | |
tree | 9b353c50b8fce449b392ce4b57835a26624ff6f9 | |
parent | 6d2e840bf49f7d9d8022ab2566cfb641dd578a44 (diff) | |
parent | e277199b82b217062c3fc26b90bf9075c405cdab (diff) | |
download | servo-a848a00a1db2c57f59509efc4165d8e04e89bb53.tar.gz servo-a848a00a1db2c57f59509efc4165d8e04e89bb53.zip |
auto merge of #4896 : bjwbell/servo/mouse-cursor, r=glennw
r? @glennw
-rw-r--r-- | ports/glutin/window.rs | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/ports/glutin/window.rs b/ports/glutin/window.rs index 8fe2f02599b..01800adb6df 100644 --- a/ports/glutin/window.rs +++ b/ports/glutin/window.rs @@ -27,7 +27,7 @@ use compositing::windowing::{MouseWindowEvent, WindowNavigateMsg}; #[cfg(feature = "window")] use geom::point::{Point2D, TypedPoint2D}; #[cfg(feature = "window")] -use glutin::{ElementState, Event, MouseButton, VirtualKeyCode}; +use glutin::{ElementState, Event, MouseButton, MouseCursor, VirtualKeyCode}; #[cfg(feature = "window")] use msg::constellation_msg::{KeyState, CONTROL, SHIFT, ALT}; #[cfg(feature = "window")] @@ -500,8 +500,56 @@ impl WindowMethods for Window { fn load_end(&self) { } + // TODO: Enable on macos when supported by glutin. + #[cfg(target_os="macos")] + fn set_cursor(&self, _: Cursor) { + } + + #[cfg(target_os="android")] fn set_cursor(&self, _: Cursor) { } + + #[cfg(target_os="linux")] + fn set_cursor(&self, c: Cursor) { + let glutin_cursor = match c { + Cursor::NoCursor => MouseCursor::NoneCursor, + Cursor::DefaultCursor => MouseCursor::Default, + Cursor::PointerCursor => MouseCursor::Hand, + Cursor::ContextMenuCursor => MouseCursor::ContextMenu, + Cursor::HelpCursor => MouseCursor::Help, + Cursor::ProgressCursor => MouseCursor::Progress, + Cursor::WaitCursor => MouseCursor::Wait, + Cursor::CellCursor => MouseCursor::Cell, + Cursor::CrosshairCursor => MouseCursor::Crosshair, + Cursor::TextCursor => MouseCursor::Text, + Cursor::VerticalTextCursor => MouseCursor::VerticalText, + Cursor::AliasCursor => MouseCursor::Alias, + Cursor::CopyCursor => MouseCursor::Copy, + Cursor::MoveCursor => MouseCursor::Move, + Cursor::NoDropCursor => MouseCursor::NoDrop, + Cursor::NotAllowedCursor => MouseCursor::NotAllowed, + Cursor::GrabCursor => MouseCursor::Grab, + Cursor::GrabbingCursor => MouseCursor::Grabbing, + Cursor::EResizeCursor => MouseCursor::EResize, + Cursor::NResizeCursor => MouseCursor::NResize, + Cursor::NeResizeCursor => MouseCursor::NeResize, + Cursor::NwResizeCursor => MouseCursor::NwResize, + Cursor::SResizeCursor => MouseCursor::SResize, + Cursor::SeResizeCursor => MouseCursor::SeResize, + Cursor::SwResizeCursor => MouseCursor::SwResize, + Cursor::WResizeCursor => MouseCursor::WResize, + Cursor::EwResizeCursor => MouseCursor::EwResize, + Cursor::NsResizeCursor => MouseCursor::NsResize, + Cursor::NeswResizeCursor => MouseCursor::NeswResize, + Cursor::NwseResizeCursor => MouseCursor::NwseResize, + Cursor::ColResizeCursor => MouseCursor::ColResize, + Cursor::RowResizeCursor => MouseCursor::RowResize, + Cursor::AllScrollCursor => MouseCursor::AllScroll, + Cursor::ZoomInCursor => MouseCursor::ZoomIn, + Cursor::ZoomOutCursor => MouseCursor::ZoomOut, + }; + self.window.set_cursor(glutin_cursor); + } fn prepare_for_composite(&self) -> bool { true |