CodeEditApp / CodeEditApp/CodeEditSourceEditor

MinimapView hitTest ignores isHidden, intercepts clicks when minimap is hidden

Open
#370 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Swift
Stars
719
Forks
160
PR merge metrics
No merged PRs in 30d

Description

## 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

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.