CodeEditApp / CodeEditApp/CodeEditSourceEditor

MinimapView hitTest ignores isHidden, intercepts clicks when minimap is hidden

未关闭
#370 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
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 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。