Skip to content

Commit 8006516

Browse files
Pewnacknot-fl3
authored andcommitted
Added support for CursorIcon::NESWResize and CursorIcon::NWSEResize on macOS
1 parent 901380b commit 8006516

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

src/native/apple/apple_util.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,12 @@ pub fn load_undocumented_cursor(cursor_name: &str) -> ObjcId {
4343
unsafe {
4444
let class = class!(NSCursor);
4545
let sel = Sel::register(cursor_name);
46-
let sel: ObjcId = msg_send![class, respondsToSelector: sel];
47-
let id: ObjcId = msg_send![class, performSelector: sel];
46+
let has_selector: BOOL = msg_send![class, respondsToSelector: sel];
47+
let id: ObjcId = if has_selector != NO {
48+
msg_send![class, performSelector: sel]
49+
} else {
50+
msg_send![class, arrowCursor]
51+
};
4852
id
4953
}
5054
}
@@ -433,6 +437,9 @@ pub fn load_mouse_cursor(cursor: CursorIcon) -> ObjcId {
433437
CursorIcon::EWResize => load_native_cursor("resizeLeftRightCursor"),
434438
CursorIcon::NSResize => load_native_cursor("resizeUpDownCursor"),
435439

440+
CursorIcon::NESWResize => load_undocumented_cursor("_windowResizeNorthEastSouthWestCursor"),
441+
CursorIcon::NWSEResize => load_undocumented_cursor("_windowResizeNorthWestSouthEastCursor"),
442+
436443
// Undocumented cursors: https://stackoverflow.com/a/46635398/5435443
437444
// Unfortunately undocumented cursors requires NSTracking areas that
438445
// we do not use yet.
@@ -441,9 +448,6 @@ pub fn load_mouse_cursor(cursor: CursorIcon) -> ObjcId {
441448
// //CursorIcon::ZoomIn => load_undocumented_cursor("_zoomInCursor"),
442449
// //CursorIcon::ZoomOut => load_undocumented_cursor("_zoomOutCursor"),
443450

444-
// CursorIcon::NESWResize => load_undocumented_cursor("_windowResizeNorthEastSouthWestCursor"),
445-
// CursorIcon::NWSEResize => load_undocumented_cursor("_windowResizeNorthWestSouthEastCursor"),
446-
447451
// // While these are available, the former just loads a white arrow,
448452
// // and the latter loads an ugly deflated beachball!
449453
// // CursorIcon::Move => Cursor::Undocumented("_moveCursor"),

0 commit comments

Comments
 (0)