ui(plotting): décalage visuel de l'impact lors du glisser pour éviter de le cacher avec le doigt
This commit is contained in:
@@ -507,14 +507,19 @@ class _AnalysisScreenContentState extends State<_AnalysisScreenContent> {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// 3. GLISSER : On déplace l'impact verrouillé en temps réel sous le doigt
|
// 3. GLISSER : On déplace l'impact verrouillé en temps réel avec un décalage visuel
|
||||||
onLongPressMoveUpdate: (LongPressMoveUpdateDetails details) {
|
onLongPressMoveUpdate: (LongPressMoveUpdateDetails details) {
|
||||||
if (_movingShotId == null) return;
|
if (_movingShotId == null) return;
|
||||||
|
|
||||||
final RenderBox? box = _imageKey.currentContext?.findRenderObject() as RenderBox?;
|
final RenderBox? box = _imageKey.currentContext?.findRenderObject() as RenderBox?;
|
||||||
if (box == null) return;
|
if (box == null) return;
|
||||||
|
|
||||||
final localOffset = box.globalToLocal(details.globalPosition);
|
// CORRECTION : On applique un décalage de pixels (Offset) vers le haut et la gauche
|
||||||
|
// -25 pixels sur l'axe X (vers la gauche) et -35 pixels sur l'axe Y (vers le haut)
|
||||||
|
// pour que l'impact sorte de dessous la pulpe du doigt !
|
||||||
|
final adjustedGlobalPosition = details.globalPosition + const Offset(-25, -35);
|
||||||
|
|
||||||
|
final localOffset = box.globalToLocal(adjustedGlobalPosition);
|
||||||
|
|
||||||
// Calcul des coordonnées relatives bridées entre 0.0 et 1.0 (pour pas sortir de la photo)
|
// Calcul des coordonnées relatives bridées entre 0.0 et 1.0 (pour pas sortir de la photo)
|
||||||
final relX = (localOffset.dx / box.size.width).clamp(0.0, 1.0);
|
final relX = (localOffset.dx / box.size.width).clamp(0.0, 1.0);
|
||||||
|
|||||||
Reference in New Issue
Block a user