mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-11 15:37:29 +02:00
Remove custom I-beam mouse cursor shape and support "no" cursor
The old custom I-beam cursor does not have a HiDPI version, and looks out of place in MacVim compared to the native I-beam cursor. The rationale for its addition (add white border around the cursor for visibility) also seems to not matter anymore as macOS has had its cursors revamped since 10.7.3. Remove the custom cursor for now. Also support the "no" cursor shape, which shows up when "Press Enter" prompt comes up. For the other 'mouseshape' cursors just remove the TODO and explicitly decide not to implement them as they are a little obscure and don't have system native shapes. Could add them later as custom cursors but not worth doing so now. Fix #755
This commit is contained in:
@@ -1028,36 +1028,37 @@ KeyboardInputSourcesEqual(TISInputSourceRef a, TISInputSourceRef b)
|
||||
|
||||
- (void)setCursor
|
||||
{
|
||||
static NSCursor *customIbeamCursor = nil;
|
||||
|
||||
if (!customIbeamCursor) {
|
||||
// Use a custom Ibeam cursor that has better contrast against dark
|
||||
// backgrounds.
|
||||
// TODO: Is the hotspot ok?
|
||||
NSImage *ibeamImage = [NSImage imageNamed:@"ibeam"];
|
||||
if (ibeamImage) {
|
||||
NSSize size = [ibeamImage size];
|
||||
NSPoint hotSpot = { size.width*.5f, size.height*.5f };
|
||||
|
||||
customIbeamCursor = [[NSCursor alloc]
|
||||
initWithImage:ibeamImage hotSpot:hotSpot];
|
||||
}
|
||||
if (!customIbeamCursor) {
|
||||
ASLogWarn(@"Failed to load custom Ibeam cursor");
|
||||
customIbeamCursor = [NSCursor IBeamCursor];
|
||||
}
|
||||
}
|
||||
|
||||
// This switch should match mshape_names[] in misc2.c.
|
||||
//
|
||||
// TODO: Add missing cursor shapes.
|
||||
// We don't fill every shape here. Only the ones that make sense and have
|
||||
// system native cursors to choose from (unless we ship custom cursors).
|
||||
switch (mouseShape) {
|
||||
case 2: [customIbeamCursor set]; break;
|
||||
case 3: case 4: [[NSCursor resizeUpDownCursor] set]; break;
|
||||
case 5: case 6: [[NSCursor resizeLeftRightCursor] set]; break;
|
||||
case 9: [[NSCursor crosshairCursor] set]; break;
|
||||
case 10: [[NSCursor pointingHandCursor] set]; break;
|
||||
case 11: [[NSCursor openHandCursor] set]; break;
|
||||
case 0: //arrow
|
||||
[[NSCursor arrowCursor] set]; break;
|
||||
//case 1: // blank
|
||||
case 2: // beam
|
||||
[[NSCursor IBeamCursor] set]; break;
|
||||
case 3: // updown
|
||||
case 4: // udsizing
|
||||
[[NSCursor resizeUpDownCursor] set]; break;
|
||||
case 5: // leftright
|
||||
case 6: // lrsizing
|
||||
[[NSCursor resizeLeftRightCursor] set]; break;
|
||||
//case 7: // busy
|
||||
// This could be implemented using _coreCursorType override on NSCursor.
|
||||
// See WebKit / Chrome / GDK implementation.
|
||||
case 8: // no
|
||||
[[NSCursor operationNotAllowedCursor] set]; break;
|
||||
case 9: // crosshair
|
||||
[[NSCursor crosshairCursor] set]; break;
|
||||
case 10: // hand1
|
||||
[[NSCursor pointingHandCursor] set]; break;
|
||||
case 11: // hand2
|
||||
[[NSCursor openHandCursor] set]; break;
|
||||
//case 12: // pencil
|
||||
//case 13: // question
|
||||
//case 14: // right-arrow
|
||||
//case 15: // up-arrow
|
||||
default:
|
||||
[[NSCursor arrowCursor] set]; break;
|
||||
}
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
1DCD00D30E50B2B700460166 /* Undo.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DCD00BE0E50B2B700460166 /* Undo.png */; };
|
||||
1DD04DEC0C529C5E006CDC2B /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 1DD04DEB0C529C5E006CDC2B /* Credits.rtf */; };
|
||||
1DD0C20C0C60FFB4008CD84A /* gvimrc in Copy Vim Runtime Files */ = {isa = PBXBuildFile; fileRef = 1DD0C20A0C60FF9A008CD84A /* gvimrc */; };
|
||||
1DD3D51E0D82D4C9006E4320 /* ibeam.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD3D51D0D82D4C9006E4320 /* ibeam.png */; };
|
||||
1DD66ECE0C803D3600EBDAB3 /* MMApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DD66ECC0C803D3600EBDAB3 /* MMApplication.m */; };
|
||||
1DD9F5E50C85D60500E8D5A5 /* SystemColors.plist in Resources */ = {isa = PBXBuildFile; fileRef = 1DD9F5E40C85D60500E8D5A5 /* SystemColors.plist */; };
|
||||
1DE3F8E70D50F80500052B9E /* Preferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = 1DE3F8E50D50F80500052B9E /* Preferences.nib */; };
|
||||
@@ -229,7 +228,6 @@
|
||||
1DCD00BE0E50B2B700460166 /* Undo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Undo.png; path = Toolbar/Undo.png; sourceTree = "<group>"; };
|
||||
1DD04DEB0C529C5E006CDC2B /* Credits.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = Credits.rtf; sourceTree = "<group>"; };
|
||||
1DD0C20A0C60FF9A008CD84A /* gvimrc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = gvimrc; sourceTree = "<group>"; };
|
||||
1DD3D51D0D82D4C9006E4320 /* ibeam.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ibeam.png; sourceTree = "<group>"; };
|
||||
1DD66ECB0C803D3600EBDAB3 /* MMApplication.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MMApplication.h; sourceTree = "<group>"; };
|
||||
1DD66ECC0C803D3600EBDAB3 /* MMApplication.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MMApplication.m; sourceTree = "<group>"; };
|
||||
1DD9F5E40C85D60500E8D5A5 /* SystemColors.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = SystemColors.plist; sourceTree = "<group>"; };
|
||||
@@ -424,7 +422,6 @@
|
||||
1D8BEA73104992290069B072 /* FindAndReplace.nib */,
|
||||
0395A8A90D72D88B00881434 /* General.png */,
|
||||
1D22374A0E45DF4800E6FFFF /* Advanced.png */,
|
||||
1DD3D51D0D82D4C9006E4320 /* ibeam.png */,
|
||||
1D0F11480D58C77800D5DA09 /* Font */,
|
||||
1DE9726C0C48050600F96A9F /* Toolbar */,
|
||||
1DD9F5E40C85D60500E8D5A5 /* SystemColors.plist */,
|
||||
@@ -567,7 +564,6 @@
|
||||
1DD9F5E50C85D60500E8D5A5 /* SystemColors.plist in Resources */,
|
||||
1DE3F8E70D50F80500052B9E /* Preferences.nib in Resources */,
|
||||
0395A8AA0D72D88B00881434 /* General.png in Resources */,
|
||||
1DD3D51E0D82D4C9006E4320 /* ibeam.png in Resources */,
|
||||
1D22374B0E45DF4800E6FFFF /* Advanced.png in Resources */,
|
||||
1DCD00BF0E50B2B700460166 /* Attention.png in Resources */,
|
||||
1DCD00C00E50B2B700460166 /* Copy.png in Resources */,
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 193 B |
Reference in New Issue
Block a user