Skip to content

Commit

Permalink
Remove custom I-beam mouse cursor shape and support "no" cursor
Browse files Browse the repository at this point in the history
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
  • Loading branch information
ychin committed Feb 19, 2019
1 parent 21b29de commit abdcc57
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 31 deletions.
53 changes: 26 additions & 27 deletions src/MacVim/MMTextViewHelper.m
Original file line number Diff line number Diff line change
Expand Up @@ -1028,36 +1028,35 @@ - (void)dragTimerFired:(NSTimer *)timer

- (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
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;
}
Expand Down
4 changes: 0 additions & 4 deletions src/MacVim/MacVim.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -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 */; };
Expand Down Expand Up @@ -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>"; };
Expand Down Expand Up @@ -424,7 +422,6 @@
1D8BEA73104992290069B072 /* FindAndReplace.nib */,
0395A8A90D72D88B00881434 /* General.png */,
1D22374A0E45DF4800E6FFFF /* Advanced.png */,
1DD3D51D0D82D4C9006E4320 /* ibeam.png */,
1D0F11480D58C77800D5DA09 /* Font */,
1DE9726C0C48050600F96A9F /* Toolbar */,
1DD9F5E40C85D60500E8D5A5 /* SystemColors.plist */,
Expand Down Expand Up @@ -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 */,
Expand Down
Binary file removed src/MacVim/ibeam.png
Binary file not shown.

0 comments on commit abdcc57

Please sign in to comment.