MinimapView hitTest ignores isHidden, intercepts clicks when minimap is hidden

Ouverte Adaptée aux débutants
#370 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
1/5
Temps estimé
1-3 heures
Accessibilité débutants
68/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
swift
Domaine
desktop

Piste de recherche

Commencez par MinimapView.hitTest(_:) et la redéfinition de mouseDown(with:) dans l’éditeur de code source. Reproduisez le problème avec SourceEditorConfiguration configuré avec showMinimap: false, puis vérifiez que les clics dans l’ancienne frame de la minimap atteignent la vue de texte sous-jacente et que l’interaction normale avec la minimap reste inchangée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

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
Langage dominant
Swift
Étoiles
720
Forks
162
Métriques de merge des PR
Aucune PR mergée en 30 j

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de CodeEditApp/CodeEditSourceEditor

Toutes les issues de CodeEditApp/CodeEditSourceEditor

Issues similaires

Plus d'issues Swift

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.