feat: tap simple toujours createur d'impact + ecran de plotting renomme Synthese

This commit is contained in:
qlionbleusam
2026-08-07 12:04:49 +02:00
parent 86abb645ce
commit 3812cd740b
6 changed files with 49 additions and 124 deletions
@@ -53,7 +53,10 @@ class TargetOverlay extends StatelessWidget {
// Désormais :
// - L'AJOUT d'impact est géré par le GestureDetector parent (analysis_screen).
// - Seule la SÉLECTION d'un impact existant est gérée ici, via des petites
// zones de tap localisées (deferToChild) placées sur chaque impact.
// zones de tap localisées (deferToChild) placées sur chaque impact
// et UNIQUEMENT si [onShotTapped] est fourni. Sans callback, aucune zone
// de tap n'est créée : un tap pile sur un impact traverse jusqu'au parent
// au lieu d'être absorbé dans le vide.
return IgnorePointer(
ignoring: false,
child: CustomPaint(
@@ -73,6 +76,8 @@ class TargetOverlay extends StatelessWidget {
),
child: LayoutBuilder(
builder: (context, constraints) {
final onTapped = onShotTapped;
if (onTapped == null) return const SizedBox.expand();
return Stack(
children: shots.map((shot) {
final x = shot.x * constraints.maxWidth;
@@ -89,7 +94,7 @@ class TargetOverlay extends StatelessWidget {
// Le reste de la surface reste donc disponible pour le
// pinch/pan de l'InteractiveViewer.
behavior: HitTestBehavior.deferToChild,
onTap: () => onShotTapped?.call(shot),
onTap: () => onTapped(shot),
child: Container(
width: tapSize,
height: tapSize,