Description
When showMinimap is set to false in SourceEditorConfiguration, the MinimapView is hidden via isHidden = true. However, clicks on the right ~140px of the editor are still intercepted by the hidden minimap, preventing cursor placement in that area.
Root Cause
MinimapView.hitTest(_:) overrides NSView.hitTest but does not check isHidden:
override public func hitTest(_ point: NSPoint) -> NSView? {
guard let point = superview?.convert(point, to: self) else { return nil }
// ...
}
Combined with the empty mouseDown override:
override public func mouseDown(with event: NSEvent) { }
This means the hidden minimap silently swallows all click events in its frame area.
Steps to Reproduce
- Create a
SourceEditor with peripherals: .init(showMinimap: false)
- Open any text file
- Try to click on the right portion of the editor (where the minimap would normally be)
- The cursor does not move — the click is eaten by the hidden minimap
Expected Behavior
When showMinimap: false, clicks should pass through to the underlying text view.
Suggested Fix
Add an isHidden guard at the top of hitTest:
override public func hitTest(_ point: NSPoint) -> NSView? {
guard !isHidden else { return nil }
guard let point = superview?.convert(point, to: self) else { return nil }
// ...
}
Environment
- CodeEditSourceEditor v0.15.2
- macOS 15.5, Apple Silicon
Description
When
showMinimapis set tofalseinSourceEditorConfiguration, theMinimapViewis hidden viaisHidden = true. However, clicks on the right ~140px of the editor are still intercepted by the hidden minimap, preventing cursor placement in that area.Root Cause
MinimapView.hitTest(_:)overridesNSView.hitTestbut does not checkisHidden:Combined with the empty
mouseDownoverride:This means the hidden minimap silently swallows all click events in its frame area.
Steps to Reproduce
SourceEditorwithperipherals: .init(showMinimap: false)Expected Behavior
When
showMinimap: false, clicks should pass through to the underlying text view.Suggested Fix
Add an
isHiddenguard at the top ofhitTest:Environment