From e4d9e320b06db54fb83b7d8ef4da8ed0054b3c4c Mon Sep 17 00:00:00 2001 From: Hans Muller Date: Wed, 5 Aug 2015 13:31:25 -0700 Subject: [PATCH] Prevent double-dismissing of Dismissables, center card_collection under-text --- packages/flutter/example/widgets/card_collection.dart | 5 ++--- packages/flutter/lib/widgets/dismissable.dart | 9 +++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/flutter/example/widgets/card_collection.dart b/packages/flutter/example/widgets/card_collection.dart index b35b1ae4b81..54f07f95fe4 100644 --- a/packages/flutter/example/widgets/card_collection.dart +++ b/packages/flutter/example/widgets/card_collection.dart @@ -77,9 +77,8 @@ class CardCollectionApp extends App { ) ); - Widget backgroundText = new Center( - child: new Text("Swipe in either direction", style: backgroundTextStyle) - ); + Widget backgroundText = + new Text("Swipe in either direction", style: backgroundTextStyle); // The background Widget appears behind the Dismissable card when the card // moves to the left or right. The Positioned widget ensures that the diff --git a/packages/flutter/lib/widgets/dismissable.dart b/packages/flutter/lib/widgets/dismissable.dart index 43951734d02..db7ca639f24 100644 --- a/packages/flutter/lib/widgets/dismissable.dart +++ b/packages/flutter/lib/widgets/dismissable.dart @@ -100,6 +100,9 @@ class Dismissable extends StatefulComponent { } EventDisposition _handlePointerDown(sky.PointerEvent event) { + if (_fadePerformance.isAnimating) + return EventDisposition.processed; + _dragUnderway = true; _dragX = 0.0; _fadePerformance.progress = 0.0; @@ -110,6 +113,9 @@ class Dismissable extends StatefulComponent { if (!_isActive) return EventDisposition.ignored; + if (_fadePerformance.isAnimating) + return EventDisposition.processed; + double oldDragX = _dragX; _dragX += event.dx; if (oldDragX.sign != _dragX.sign) @@ -123,6 +129,9 @@ class Dismissable extends StatefulComponent { if (!_isActive) return EventDisposition.ignored; + if (_fadePerformance.isAnimating) + return EventDisposition.processed; + _dragUnderway = false; if (_fadePerformance.isCompleted) _startResizePerformance();