MinimapView hitTest ignores isHidden, intercepts clicks when minimap is hidden

Open Beginner friendly
#370 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
1-3 hours
Newbie friendliness
68/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
swift
Domain
desktop

Research direction

Start at MinimapView.hitTest(_:) and its mouseDown(with:) override in the source editor. Reproduce with SourceEditorConfiguration set to showMinimap: false, then verify that clicks in the minimap's former frame reach the underlying text view and that normal minimap interaction remains unaffected.

Written by the indexing model from the issue text.

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:

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

  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:

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
Dominant language
Swift
Stars
720
Forks
162
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from CodeEditApp/CodeEditSourceEditor

All issues in CodeEditApp/CodeEditSourceEditor

Similar issues

More Swift issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.