macOS: Adopt new NSCursor API for window frame resize cursors
Fixes: QTBUG-126240 Change-Id: I25799d5fa38cebae756a393e3d8f27e422567adb Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 4aeb27fbacfade7106b19c460deb5414143a5e53) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
f9d33433f3
commit
22518b26c9
@ -134,24 +134,42 @@ NSCursor *QCocoaCursor::convertCursor(QCursor *cursor)
|
|||||||
case Qt::DragLinkCursor:
|
case Qt::DragLinkCursor:
|
||||||
cocoaCursor = [NSCursor dragLinkCursor];
|
cocoaCursor = [NSCursor dragLinkCursor];
|
||||||
break;
|
break;
|
||||||
#if !defined(QT_APPLE_NO_PRIVATE_APIS)
|
|
||||||
case Qt::SizeVerCursor:
|
case Qt::SizeVerCursor:
|
||||||
if ([NSCursor respondsToSelector:@selector(_windowResizeNorthSouthCursor)])
|
|
||||||
cocoaCursor = [NSCursor _windowResizeNorthSouthCursor];
|
|
||||||
break;
|
|
||||||
case Qt::SizeHorCursor:
|
case Qt::SizeHorCursor:
|
||||||
if ([NSCursor respondsToSelector:@selector(_windowResizeEastWestCursor)])
|
|
||||||
cocoaCursor = [NSCursor _windowResizeEastWestCursor];
|
|
||||||
break;
|
|
||||||
case Qt::SizeBDiagCursor:
|
case Qt::SizeBDiagCursor:
|
||||||
if ([NSCursor respondsToSelector:@selector(_windowResizeNorthEastSouthWestCursor)])
|
case Qt::SizeFDiagCursor: {
|
||||||
cocoaCursor = [NSCursor _windowResizeNorthEastSouthWestCursor];
|
#if QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(150000)
|
||||||
break;
|
if (@available(macOS 15, *)) {
|
||||||
case Qt::SizeFDiagCursor:
|
auto position = [newShape]{
|
||||||
if ([NSCursor respondsToSelector:@selector(_windowResizeNorthWestSouthEastCursor)])
|
switch (newShape) {
|
||||||
cocoaCursor = [NSCursor _windowResizeNorthWestSouthEastCursor];
|
case Qt::SizeVerCursor: return NSCursorFrameResizePositionTop;
|
||||||
|
case Qt::SizeHorCursor: return NSCursorFrameResizePositionLeft;
|
||||||
|
case Qt::SizeBDiagCursor: return NSCursorFrameResizePositionTopRight;
|
||||||
|
case Qt::SizeFDiagCursor: return NSCursorFrameResizePositionTopLeft;
|
||||||
|
default: Q_UNREACHABLE();
|
||||||
|
}
|
||||||
|
}();
|
||||||
|
cocoaCursor = [NSCursor frameResizeCursorFromPosition:position
|
||||||
|
inDirections:NSCursorFrameResizeDirectionsAll];
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
#endif // macOS 15 SDK
|
||||||
|
#if !defined(QT_APPLE_NO_PRIVATE_APIS)
|
||||||
|
auto selector = [newShape]{
|
||||||
|
switch (newShape) {
|
||||||
|
case Qt::SizeVerCursor: return @selector(_windowResizeNorthSouthCursor);
|
||||||
|
case Qt::SizeHorCursor: return @selector(_windowResizeEastWestCursor);
|
||||||
|
case Qt::SizeBDiagCursor: return @selector(_windowResizeNorthEastSouthWestCursor);
|
||||||
|
case Qt::SizeFDiagCursor: return @selector(_windowResizeNorthWestSouthEastCursor);
|
||||||
|
default: Q_UNREACHABLE();
|
||||||
|
}
|
||||||
|
}();
|
||||||
|
|
||||||
|
if ([NSCursor respondsToSelector:selector])
|
||||||
|
cocoaCursor = [NSCursor performSelector:selector];
|
||||||
#endif // QT_APPLE_NO_PRIVATE_APIS
|
#endif // QT_APPLE_NO_PRIVATE_APIS
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user