@@ -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