From 0b20d3c1155cdd03fd99a5aa2bfcbe5055fd67a7 Mon Sep 17 00:00:00 2001 From: NeeEoo Date: Sat, 20 Apr 2024 22:10:38 +0200 Subject: [PATCH] Fixed cursor on move for mac --- source/external/src/mac/CursorHelper.mm | 1 + source/external/src/mac/Mac.mm | 25 +++++++++++----------- source/funkin/editors/stage/StageEditor.hx | 3 ++- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/source/external/src/mac/CursorHelper.mm b/source/external/src/mac/CursorHelper.mm index 90549237..49f7eab9 100644 --- a/source/external/src/mac/CursorHelper.mm +++ b/source/external/src/mac/CursorHelper.mm @@ -11,6 +11,7 @@ if ([NSCursor respondsToSelector:selector]) { cursor = [NSCursor performSelector:selector]; } else { + NSLog(@"CursorHelper: selector %@ not found", NSStringFromSelector(selector)); cursor = defaultCursor; } #pragma clang diagnostic pop diff --git a/source/external/src/mac/Mac.mm b/source/external/src/mac/Mac.mm index 8858ae88..8303e289 100644 --- a/source/external/src/mac/Mac.mm +++ b/source/external/src/mac/Mac.mm @@ -39,23 +39,24 @@ namespace ExternalMac { case HAND: cursor = [NSCursor closedHandCursor]; break; case IBEAM: cursor = [NSCursor IBeamCursor]; break; //case MOVE: cursor = [NSCursor moveCursor]; break; + //case MOVE: cursor = [CursorHelper getCursorForSelector:@selector(_moveCursor) defaultCursor:nil]; break; case RESIZE_H: cursor = [NSCursor resizeLeftRightCursor]; break; case RESIZE_V: cursor = [NSCursor resizeUpDownCursor]; break; // TODO: DEFAULTS - case RESIZE_TL: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeNorthWestCursor) defaultCursor:[NSCursor arrowCursor]]; break; - case RESIZE_TR: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeNorthEastCursor) defaultCursor:[NSCursor arrowCursor]]; break; - case RESIZE_BL: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeSouthWestCursor) defaultCursor:[NSCursor arrowCursor]]; break; - case RESIZE_BR: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeSouthEastCursor) defaultCursor:[NSCursor arrowCursor]]; break; - case RESIZE_T: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeNorthCursor) defaultCursor:[NSCursor arrowCursor]]; break; - case RESIZE_B: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeSouthCursor) defaultCursor:[NSCursor arrowCursor]]; break; - case RESIZE_L: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeWestCursor) defaultCursor:[NSCursor arrowCursor]]; break; - case RESIZE_R: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeEastCursor) defaultCursor:[NSCursor arrowCursor]]; break; - case RESIZE_TLBR: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeNorthWestSouthEastCursor) defaultCursor:[NSCursor arrowCursor]]; break; - case RESIZE_TRBL: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeNorthEastSouthWestCursor) defaultCursor:[NSCursor arrowCursor]]; break; + case RESIZE_TL: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeNorthWestCursor) defaultCursor:nil]; break; + case RESIZE_TR: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeNorthEastCursor) defaultCursor:nil]; break; + case RESIZE_BL: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeSouthWestCursor) defaultCursor:nil]; break; + case RESIZE_BR: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeSouthEastCursor) defaultCursor:nil]; break; + case RESIZE_T: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeNorthCursor) defaultCursor:nil]; break; + case RESIZE_B: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeSouthCursor) defaultCursor:nil]; break; + case RESIZE_L: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeWestCursor) defaultCursor:nil]; break; + case RESIZE_R: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeEastCursor) defaultCursor:nil]; break; + case RESIZE_TLBR: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeNorthWestSouthEastCursor) defaultCursor:nil]; break; + case RESIZE_TRBL: cursor = [CursorHelper getCursorForSelector:@selector(_windowResizeNorthEastSouthWestCursor) defaultCursor:nil]; break; - case WAIT: cursor = [CursorHelper getCursorForSelector:@selector(_waitCursor) defaultCursor:[NSCursor arrowCursor]]; break; - case WAIT_ARROW: cursor = [CursorHelper getCursorForSelector:@selector(_waitCursor) defaultCursor:[NSCursor arrowCursor]]; break; + case WAIT: cursor = [CursorHelper getCursorForSelector:@selector(_waitCursor) defaultCursor:nil]; break; + case WAIT_ARROW: cursor = [CursorHelper getCursorForSelector:@selector(_waitCursor) defaultCursor:nil]; break; case DISABLED: cursor = [NSCursor operationNotAllowedCursor]; break; case DRAG: cursor = [NSCursor closedHandCursor]; break; case DRAG_OPEN: cursor = [NSCursor openHandCursor]; break; diff --git a/source/funkin/editors/stage/StageEditor.hx b/source/funkin/editors/stage/StageEditor.hx index 6499a360..1d2766ab 100644 --- a/source/funkin/editors/stage/StageEditor.hx +++ b/source/funkin/editors/stage/StageEditor.hx @@ -1127,13 +1127,14 @@ class StageEditor extends UIState { for(i=>edge in edges) { if(checkDot(buttonBoxes[i])) { // TODO: make it show both sided arrows when resizing, unless its at minimum size then show only one + // TODO: make this rotate with the sprite currentCursor = switch(edge) { // RESIZE_NESW; //RESIZE_NS; //RESIZE_NWSE; //RESIZE_WE; case TOP_LEFT: RESIZE_TL; case TOP_MIDDLE: RESIZE_T; case TOP_RIGHT: RESIZE_TR; case MIDDLE_LEFT: RESIZE_L; - case CENTER_CIRCLE: HAND; + case CENTER_CIRCLE: #if mac FlxG.mouse.pressed ? DRAG : DRAG_OPEN #else MOVE #end; case MIDDLE_RIGHT: RESIZE_R; case BOTTOM_LEFT: RESIZE_BL; case BOTTOM_MIDDLE: RESIZE_B;