CodeEditApp / CodeEditApp/CodeEditSourceEditor
MinimapView hitTest ignores isHidden, intercepts clicks when minimap is hidden
- 主要语言
- Swift
- 星标
- 719
- 派生
- 160
- PR 合并指标
- 30 天内没有已合并 PR
描述
## 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`:
```swift
override public func hitTest(_ point: NSPoint) -> NSView? {
guard let point = superview?.convert(point, to: self) else { return nil }
// ...
}
```
Combined with the empty `mouseDown` override:
```swift
override public func mouseDown(with event: NSEvent) { }
```
This means the hidden minimap silently swallows all click events in its frame area.
## Steps to Reproduce
1. Create a `SourceEditor` with `peripherals: .init(showMinimap: false)`
2. Open any text file
3. Try to click on the right portion of the editor (where the minimap would normally be)
4. 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`:
```swift
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
贡献指南
这个仓库没有索引到贡献指南
评估
这个 Issue 还没有评估数据。