Commit 051354ae authored by Adam Barth's avatar Adam Barth

Remove EventDisposition

All the use cases for EventDisposition are now addressed by the gesture
detection system.
parent 1976ae1d
...@@ -16,7 +16,7 @@ AssetBundle _initBundle() { ...@@ -16,7 +16,7 @@ AssetBundle _initBundle() {
final AssetBundle _bundle = _initBundle(); final AssetBundle _bundle = _initBundle();
EventDisposition launch(String relativeUrl, String bundle) { void launch(String relativeUrl, String bundle) {
// TODO(eseidel): This is a hack to keep non-skyx examples working for now: // TODO(eseidel): This is a hack to keep non-skyx examples working for now:
Uri productionBase = Uri.parse( Uri productionBase = Uri.parse(
'https://domokit.github.io/example/demo_launcher/lib/main.dart'); 'https://domokit.github.io/example/demo_launcher/lib/main.dart');
...@@ -40,7 +40,6 @@ EventDisposition launch(String relativeUrl, String bundle) { ...@@ -40,7 +40,6 @@ EventDisposition launch(String relativeUrl, String bundle) {
} }
activity.startActivity(intent); activity.startActivity(intent);
return EventDisposition.processed;
} }
class SkyDemo { class SkyDemo {
......
...@@ -80,12 +80,11 @@ class FeedFragment extends StatefulComponent { ...@@ -80,12 +80,11 @@ class FeedFragment extends StatefulComponent {
AnimationStatus _snackBarStatus = AnimationStatus.dismissed; AnimationStatus _snackBarStatus = AnimationStatus.dismissed;
bool _isShowingSnackBar = false; bool _isShowingSnackBar = false;
EventDisposition _handleFitnessModeChange(FitnessMode value) { void _handleFitnessModeChange(FitnessMode value) {
setState(() { setState(() {
_fitnessMode = value; _fitnessMode = value;
_drawerShowing = false; _drawerShowing = false;
}); });
return EventDisposition.processed;
} }
Drawer buildDrawer() { Drawer buildDrawer() {
...@@ -136,10 +135,9 @@ class FeedFragment extends StatefulComponent { ...@@ -136,10 +135,9 @@ class FeedFragment extends StatefulComponent {
}); });
} }
EventDisposition _handleShowSettings() { void _handleShowSettings() {
navigator.pop(); navigator.pop();
navigator.pushNamed('/settings'); navigator.pushNamed('/settings');
return EventDisposition.processed;
} }
// TODO(jackson): We should be localizing // TODO(jackson): We should be localizing
......
...@@ -63,7 +63,7 @@ class SettingsFragment extends StatefulComponent { ...@@ -63,7 +63,7 @@ class SettingsFragment extends StatefulComponent {
} }
} }
EventDisposition _handleGoalWeightPressed() { void _handleGoalWeightPressed() {
showDialog(navigator, (navigator) { showDialog(navigator, (navigator) {
return new Dialog( return new Dialog(
title: new Text("Goal Weight"), title: new Text("Goal Weight"),
...@@ -92,7 +92,6 @@ class SettingsFragment extends StatefulComponent { ...@@ -92,7 +92,6 @@ class SettingsFragment extends StatefulComponent {
] ]
); );
}).then((double goalWeight) => updater(goalWeight: goalWeight)); }).then((double goalWeight) => updater(goalWeight: goalWeight));
return EventDisposition.processed;
} }
Widget buildSettingsPane() { Widget buildSettingsPane() {
......
...@@ -190,11 +190,10 @@ class MineDiggerApp extends App { ...@@ -190,11 +190,10 @@ class MineDiggerApp extends App {
); );
} }
EventDisposition handleToolbarPointerDown(sky.PointerEvent event) { void handleToolbarPointerDown(sky.PointerEvent event) {
setState(() { setState(() {
resetGame(); resetGame();
}); });
return EventDisposition.processed;
} }
// User action. The user uncovers the cell which can cause losing the game. // User action. The user uncovers the cell which can cause losing the game.
......
...@@ -528,15 +528,11 @@ class RenderSolidColor extends RenderDecoratedSector { ...@@ -528,15 +528,11 @@ class RenderSolidColor extends RenderDecoratedSector {
deltaTheta = constraints.constrainDeltaTheta(desiredDeltaTheta); deltaTheta = constraints.constrainDeltaTheta(desiredDeltaTheta);
} }
EventDisposition handleEvent(sky.Event event, HitTestEntry entry) { void handleEvent(sky.Event event, HitTestEntry entry) {
if (event.type == 'pointerdown') { if (event.type == 'pointerdown')
decoration = new BoxDecoration(backgroundColor: const Color(0xFFFF0000)); decoration = new BoxDecoration(backgroundColor: const Color(0xFFFF0000));
return EventDisposition.processed; else if (event.type == 'pointerup')
} else if (event.type == 'pointerup') {
decoration = new BoxDecoration(backgroundColor: backgroundColor); decoration = new BoxDecoration(backgroundColor: backgroundColor);
return EventDisposition.processed;
}
return EventDisposition.ignored;
} }
} }
......
...@@ -42,14 +42,10 @@ class RenderSolidColorBox extends RenderDecoratedBox { ...@@ -42,14 +42,10 @@ class RenderSolidColorBox extends RenderDecoratedBox {
size = constraints.constrain(desiredSize); size = constraints.constrain(desiredSize);
} }
EventDisposition handleEvent(sky.Event event, BoxHitTestEntry entry) { void handleEvent(sky.Event event, BoxHitTestEntry entry) {
if (event.type == 'pointerdown') { if (event.type == 'pointerdown')
decoration = new BoxDecoration(backgroundColor: const Color(0xFFFF0000)); decoration = new BoxDecoration(backgroundColor: const Color(0xFFFF0000));
return EventDisposition.processed; else if (event.type == 'pointerup')
} else if (event.type == 'pointerup') {
decoration = new BoxDecoration(backgroundColor: backgroundColor); decoration = new BoxDecoration(backgroundColor: backgroundColor);
return EventDisposition.processed;
}
return EventDisposition.ignored;
} }
} }
...@@ -39,7 +39,7 @@ class RenderTouchDemo extends RenderBox { ...@@ -39,7 +39,7 @@ class RenderTouchDemo extends RenderBox {
RenderTouchDemo(); RenderTouchDemo();
EventDisposition handleEvent(sky.Event event, BoxHitTestEntry entry) { void handleEvent(sky.Event event, BoxHitTestEntry entry) {
if (event is sky.PointerEvent) { if (event is sky.PointerEvent) {
switch (event.type) { switch (event.type) {
case 'pointerdown': case 'pointerdown':
...@@ -57,9 +57,7 @@ class RenderTouchDemo extends RenderBox { ...@@ -57,9 +57,7 @@ class RenderTouchDemo extends RenderBox {
break; break;
} }
markNeedsPaint(); markNeedsPaint();
return EventDisposition.processed;
} }
return EventDisposition.processed;
} }
void performLayout() { void performLayout() {
......
...@@ -81,13 +81,12 @@ class StockHome extends StatefulComponent { ...@@ -81,13 +81,12 @@ class StockHome extends StatefulComponent {
}); });
} }
EventDisposition _handleStockModeChange(StockMode value) { void _handleStockModeChange(StockMode value) {
setState(() { setState(() {
stockMode = value; stockMode = value;
}); });
if (modeUpdater != null) if (modeUpdater != null)
modeUpdater(value); modeUpdater(value);
return EventDisposition.processed;
} }
void _handleMenuShow() { void _handleMenuShow() {
...@@ -146,10 +145,9 @@ class StockHome extends StatefulComponent { ...@@ -146,10 +145,9 @@ class StockHome extends StatefulComponent {
); );
} }
EventDisposition _handleShowSettings() { void _handleShowSettings() {
navigator.pop(); navigator.pop();
navigator.pushNamed('/settings'); navigator.pushNamed('/settings');
return EventDisposition.processed;
} }
Widget buildToolBar() { Widget buildToolBar() {
......
...@@ -39,7 +39,7 @@ class StockSettings extends StatefulComponent { ...@@ -39,7 +39,7 @@ class StockSettings extends StatefulComponent {
sendUpdates(); sendUpdates();
} }
EventDisposition _confirmOptimismChange() { void _confirmOptimismChange() {
switch (optimism) { switch (optimism) {
case StockMode.optimistic: case StockMode.optimistic:
_handleOptimismChanged(false); _handleOptimismChanged(false);
...@@ -70,7 +70,6 @@ class StockSettings extends StatefulComponent { ...@@ -70,7 +70,6 @@ class StockSettings extends StatefulComponent {
}).then(_handleOptimismChanged); }).then(_handleOptimismChanged);
break; break;
} }
return EventDisposition.processed;
} }
void sendUpdates() { void sendUpdates() {
......
...@@ -68,39 +68,35 @@ class DragAndDropApp extends App { ...@@ -68,39 +68,35 @@ class DragAndDropApp extends App {
DragController _dragController; DragController _dragController;
Offset _displacement = Offset.zero; Offset _displacement = Offset.zero;
EventDisposition _startDrag(sky.PointerEvent event) { void _startDrag(sky.PointerEvent event) {
setState(() { setState(() {
_dragController = new DragController(new DragData("Orange")); _dragController = new DragController(new DragData("Orange"));
_dragController.update(new Point(event.x, event.y)); _dragController.update(new Point(event.x, event.y));
_displacement = Offset.zero; _displacement = Offset.zero;
}); });
return EventDisposition.consumed;
} }
EventDisposition _updateDrag(sky.PointerEvent event) { void _updateDrag(sky.PointerEvent event) {
setState(() { setState(() {
_dragController.update(new Point(event.x, event.y)); _dragController.update(new Point(event.x, event.y));
_displacement += new Offset(event.dx, event.dy); _displacement += new Offset(event.dx, event.dy);
}); });
return EventDisposition.consumed;
} }
EventDisposition _cancelDrag(sky.PointerEvent event) { void _cancelDrag(sky.PointerEvent event) {
setState(() { setState(() {
_dragController.cancel(); _dragController.cancel();
_dragController = null; _dragController = null;
}); });
return EventDisposition.consumed;
} }
EventDisposition _drop(sky.PointerEvent event) { void _drop(sky.PointerEvent event) {
setState(() { setState(() {
_dragController.update(new Point(event.x, event.y)); _dragController.update(new Point(event.x, event.y));
_dragController.drop(); _dragController.drop();
_dragController = null; _dragController = null;
_displacement = Offset.zero; _displacement = Offset.zero;
}); });
return EventDisposition.consumed;
} }
Widget build() { Widget build() {
...@@ -114,6 +110,7 @@ class DragAndDropApp extends App { ...@@ -114,6 +110,7 @@ class DragAndDropApp extends App {
new Positioned( new Positioned(
top: kTop, top: kTop,
left: kLeft, left: kLeft,
// TODO(abarth): We should be using a GestureDetector
child: new Listener( child: new Listener(
onPointerDown: _startDrag, onPointerDown: _startDrag,
onPointerMove: _updateDrag, onPointerMove: _updateDrag,
......
...@@ -99,7 +99,7 @@ class OverlayGeometryApp extends App { ...@@ -99,7 +99,7 @@ class OverlayGeometryApp extends App {
}); });
} }
EventDisposition handlePointerDown(Widget target, sky.PointerEvent event) { void handlePointerDown(Widget target, sky.PointerEvent event) {
setState(() { setState(() {
markers[MarkerType.touch] = new Point(event.x, event.y); markers[MarkerType.touch] = new Point(event.x, event.y);
markers[MarkerType.topLeft] = target.localToGlobal(new Point(0.0, 0.0)); markers[MarkerType.topLeft] = target.localToGlobal(new Point(0.0, 0.0));
...@@ -113,8 +113,6 @@ class OverlayGeometryApp extends App { ...@@ -113,8 +113,6 @@ class OverlayGeometryApp extends App {
scrollable.addListener(scrollListener); scrollable.addListener(scrollListener);
} }
}); });
return EventDisposition.processed;
} }
Widget builder(int index) { Widget builder(int index) {
......
...@@ -24,19 +24,17 @@ class Key { ...@@ -24,19 +24,17 @@ class Key {
final String soundUrl; final String soundUrl;
MediaPlayerProxy player; MediaPlayerProxy player;
EventDisposition down() { void down() {
if (player == null) if (player == null)
return EventDisposition.ignored; return;
player.ptr.seekTo(0); player.ptr.seekTo(0);
player.ptr.start(); player.ptr.start();
return EventDisposition.processed;
} }
EventDisposition up() { void up() {
if (player == null) if (player == null)
return EventDisposition.ignored; return;
player.ptr.pause(); player.ptr.pause();
return EventDisposition.processed;
} }
} }
......
...@@ -63,11 +63,10 @@ HAL: This mission is too important for me to allow you to jeopardize it.'''; ...@@ -63,11 +63,10 @@ HAL: This mission is too important for me to allow you to jeopardize it.''';
); );
} }
EventDisposition toggleToTextFunction(_) { void toggleToTextFunction(_) {
setState(() { setState(() {
toText = (toText == toPlainText) ? toStyledText : toPlainText; toText = (toText == toPlainText) ? toStyledText : toPlainText;
}); });
return EventDisposition.processed;
} }
Widget build() { Widget build() {
......
...@@ -16,7 +16,6 @@ export 'package:sky/rendering.dart' show ...@@ -16,7 +16,6 @@ export 'package:sky/rendering.dart' show
BoxShadow, BoxShadow,
Color, Color,
EdgeDims, EdgeDims,
EventDisposition,
FlexAlignItems, FlexAlignItems,
FlexDirection, FlexDirection,
FlexJustifyContent, FlexJustifyContent,
......
...@@ -7,8 +7,6 @@ import 'dart:math' as math; ...@@ -7,8 +7,6 @@ import 'dart:math' as math;
import 'package:sky/src/rendering/box.dart'; import 'package:sky/src/rendering/box.dart';
import 'package:sky/src/rendering/object.dart'; import 'package:sky/src/rendering/object.dart';
export 'package:sky/src/rendering/object.dart' show EventDisposition;
/// Parent data for use with [RenderFlex] /// Parent data for use with [RenderFlex]
class FlexParentData extends BoxParentData with ContainerParentDataMixin<RenderBox> { class FlexParentData extends BoxParentData with ContainerParentDataMixin<RenderBox> {
/// The flex factor to use for this child /// The flex factor to use for this child
......
...@@ -4,34 +4,10 @@ ...@@ -4,34 +4,10 @@
import 'dart:sky' as sky; import 'dart:sky' as sky;
/// The outcome of running an event handler.
enum EventDisposition {
/// The event handler ignored this event.
ignored,
/// The event handler did not ignore the event but other event handlers should
/// process the event as well.
processed,
/// The event handler did not ignore the event and other event handlers
/// should not process the event.
consumed,
}
/// Merges two [EventDisposition] values such that the result indicates the
/// maximum amount of processing indicated by the two inputs.
EventDisposition combineEventDispositions(EventDisposition left, EventDisposition right) {
if (left == EventDisposition.consumed || right == EventDisposition.consumed)
return EventDisposition.consumed;
if (left == EventDisposition.processed || right == EventDisposition.processed)
return EventDisposition.processed;
return EventDisposition.ignored;
}
/// An object that can handle events. /// An object that can handle events.
abstract class HitTestTarget { abstract class HitTestTarget {
/// Override this function to receive events. /// Override this function to receive events.
EventDisposition handleEvent(sky.Event event, HitTestEntry entry); void handleEvent(sky.Event event, HitTestEntry entry);
} }
/// Data collected during a hit test about a specific [HitTestTarget]. /// Data collected during a hit test about a specific [HitTestTarget].
......
...@@ -14,7 +14,7 @@ import 'package:sky/src/rendering/node.dart'; ...@@ -14,7 +14,7 @@ import 'package:sky/src/rendering/node.dart';
import 'package:vector_math/vector_math.dart'; import 'package:vector_math/vector_math.dart';
export 'dart:sky' show Point, Offset, Size, Rect, Color, Paint, Path; export 'dart:sky' show Point, Offset, Size, Rect, Color, Paint, Path;
export 'package:sky/src/rendering/hit_test.dart' show EventDisposition, HitTestTarget, HitTestEntry, HitTestResult; export 'package:sky/src/rendering/hit_test.dart' show HitTestTarget, HitTestEntry, HitTestResult;
/// Base class for data associated with a [RenderObject] by its parent /// Base class for data associated with a [RenderObject] by its parent
/// ///
...@@ -1028,8 +1028,7 @@ abstract class RenderObject extends AbstractNode implements HitTestTarget { ...@@ -1028,8 +1028,7 @@ abstract class RenderObject extends AbstractNode implements HitTestTarget {
// EVENTS // EVENTS
/// Override this function to handle events that hit this render object /// Override this function to handle events that hit this render object
EventDisposition handleEvent(sky.Event event, HitTestEntry entry) { void handleEvent(sky.Event event, HitTestEntry entry) {
return EventDisposition.ignored;
} }
......
...@@ -123,7 +123,7 @@ class SkyBinding extends HitTestTarget { ...@@ -123,7 +123,7 @@ class SkyBinding extends HitTestTarget {
return state; return state;
} }
EventDisposition _handlePointerEvent(sky.PointerEvent event) { void _handlePointerEvent(sky.PointerEvent event) {
Point position = new Point(event.x, event.y); Point position = new Point(event.x, event.y);
_PointerState state = _getOrCreateStateForPointer(event, position); _PointerState state = _getOrCreateStateForPointer(event, position);
...@@ -149,27 +149,19 @@ class SkyBinding extends HitTestTarget { ...@@ -149,27 +149,19 @@ class SkyBinding extends HitTestTarget {
} }
/// Dispatch the given event to the path of the given hit test result /// Dispatch the given event to the path of the given hit test result
EventDisposition dispatchEvent(sky.Event event, HitTestResult result) { void dispatchEvent(sky.Event event, HitTestResult result) {
assert(result != null); assert(result != null);
EventDisposition disposition = EventDisposition.ignored; for (HitTestEntry entry in result.path)
for (HitTestEntry entry in result.path) { entry.target.handleEvent(event, entry);
EventDisposition entryDisposition = entry.target.handleEvent(event, entry);
if (entryDisposition == EventDisposition.consumed)
return EventDisposition.consumed;
else if (entryDisposition == EventDisposition.processed)
disposition = EventDisposition.processed;
}
return disposition;
} }
EventDisposition handleEvent(sky.Event e, BindingHitTestEntry entry) { void handleEvent(sky.Event e, BindingHitTestEntry entry) {
if (e is! sky.PointerEvent) if (e is sky.PointerEvent) {
return EventDisposition.ignored; sky.PointerEvent event = e;
sky.PointerEvent event = e; pointerRouter.route(event);
pointerRouter.route(event); if (event.type == 'pointerdown')
if (event.type == 'pointerdown') GestureArena.instance.close(event.pointer);
GestureArena.instance.close(event.pointer); }
return EventDisposition.processed;
} }
} }
......
...@@ -31,12 +31,9 @@ abstract class RenderToggleable extends RenderConstrainedBox { ...@@ -31,12 +31,9 @@ abstract class RenderToggleable extends RenderConstrainedBox {
..addListener(markNeedsPaint); ..addListener(markNeedsPaint);
} }
EventDisposition handleEvent(sky.Event event, BoxHitTestEntry entry) { void handleEvent(sky.Event event, BoxHitTestEntry entry) {
if (event.type == 'pointerdown') { if (event.type == 'pointerdown')
_tap.addPointer(event); _tap.addPointer(event);
return EventDisposition.processed;
}
return EventDisposition.ignored;
} }
TapGestureRecognizer _tap; TapGestureRecognizer _tap;
......
...@@ -27,7 +27,6 @@ export 'package:sky/src/painting/text_style.dart'; ...@@ -27,7 +27,6 @@ export 'package:sky/src/painting/text_style.dart';
export 'package:sky/src/rendering/block.dart' show BlockDirection; export 'package:sky/src/rendering/block.dart' show BlockDirection;
export 'package:sky/src/rendering/box.dart' show BoxConstraints; export 'package:sky/src/rendering/box.dart' show BoxConstraints;
export 'package:sky/src/rendering/flex.dart' show FlexJustifyContent, FlexAlignItems, FlexDirection; export 'package:sky/src/rendering/flex.dart' show FlexJustifyContent, FlexAlignItems, FlexDirection;
export 'package:sky/src/rendering/hit_test.dart' show EventDisposition, combineEventDispositions;
export 'package:sky/src/rendering/object.dart' show Point, Offset, Size, Rect, Color, Paint, Path; export 'package:sky/src/rendering/object.dart' show Point, Offset, Size, Rect, Color, Paint, Path;
export 'package:sky/src/rendering/proxy_box.dart' show BackgroundImage, BoxDecoration, BoxDecorationPosition, BoxShadow, Border, BorderSide, EdgeDims, Shape; export 'package:sky/src/rendering/proxy_box.dart' show BackgroundImage, BoxDecoration, BoxDecorationPosition, BoxShadow, Border, BorderSide, EdgeDims, Shape;
export 'package:sky/src/rendering/shifted_box.dart' show ShrinkWrap; export 'package:sky/src/rendering/shifted_box.dart' show ShrinkWrap;
......
...@@ -14,23 +14,22 @@ abstract class ButtonBase extends StatefulComponent { ...@@ -14,23 +14,22 @@ abstract class ButtonBase extends StatefulComponent {
highlight = source.highlight; highlight = source.highlight;
} }
EventDisposition _handlePointerDown(_) { void _handlePointerDown(_) {
setState(() { setState(() {
highlight = true; highlight = true;
}); });
return EventDisposition.processed;
} }
EventDisposition _handlePointerUp(_) {
void _handlePointerUp(_) {
setState(() { setState(() {
highlight = false; highlight = false;
}); });
return EventDisposition.processed;
} }
EventDisposition _handlePointerCancel(_) {
void _handlePointerCancel(_) {
setState(() { setState(() {
highlight = false; highlight = false;
}); });
return EventDisposition.processed;
} }
Widget build() { Widget build() {
......
...@@ -119,11 +119,9 @@ class DatePickerHeader extends Component { ...@@ -119,11 +119,9 @@ class DatePickerHeader extends Component {
DatePickerMode mode; DatePickerMode mode;
DatePickerModeChanged onModeChanged; DatePickerModeChanged onModeChanged;
EventDisposition _handleChangeMode(DatePickerMode value) { void _handleChangeMode(DatePickerMode value) {
if (value == mode) if (value != mode)
return EventDisposition.ignored; onModeChanged(value);
onModeChanged(value);
return EventDisposition.processed;
} }
Widget build() { Widget build() {
......
...@@ -16,7 +16,6 @@ import 'package:sky/src/rendering/sky_binding.dart'; ...@@ -16,7 +16,6 @@ import 'package:sky/src/rendering/sky_binding.dart';
import 'package:sky/src/rendering/view.dart'; import 'package:sky/src/rendering/view.dart';
export 'package:sky/src/rendering/box.dart' show BoxConstraints, BoxDecoration, Border, BorderSide, EdgeDims; export 'package:sky/src/rendering/box.dart' show BoxConstraints, BoxDecoration, Border, BorderSide, EdgeDims;
export 'package:sky/src/rendering/hit_test.dart' show EventDisposition, combineEventDispositions;
export 'package:sky/src/rendering/object.dart' show Point, Offset, Size, Rect, Color, Paint, Path; export 'package:sky/src/rendering/object.dart' show Point, Offset, Size, Rect, Color, Paint, Path;
final bool _shouldLogRenderDuration = false; // see also 'enableProfilingLoop' argument to runApp() final bool _shouldLogRenderDuration = false; // see also 'enableProfilingLoop' argument to runApp()
...@@ -686,9 +685,7 @@ abstract class Inherited extends TagNode { ...@@ -686,9 +685,7 @@ abstract class Inherited extends TagNode {
} }
typedef EventDisposition GestureEventListener(sky.GestureEvent e); typedef void PointerEventListener(sky.PointerEvent e);
typedef EventDisposition PointerEventListener(sky.PointerEvent e);
typedef EventDisposition EventListener(sky.Event e);
class Listener extends TagNode { class Listener extends TagNode {
Listener({ Listener({
...@@ -705,7 +702,7 @@ class Listener extends TagNode { ...@@ -705,7 +702,7 @@ class Listener extends TagNode {
final PointerEventListener onPointerUp; final PointerEventListener onPointerUp;
final PointerEventListener onPointerCancel; final PointerEventListener onPointerCancel;
EventDisposition _handleEvent(sky.Event event) { void _handleEvent(sky.Event event) {
if (onPointerDown != null && event.type == 'pointerdown') if (onPointerDown != null && event.type == 'pointerdown')
return onPointerDown(event); return onPointerDown(event);
if (onPointerMove != null && event.type == 'pointermove') if (onPointerMove != null && event.type == 'pointermove')
...@@ -714,7 +711,6 @@ class Listener extends TagNode { ...@@ -714,7 +711,6 @@ class Listener extends TagNode {
return onPointerUp(event); return onPointerUp(event);
if (onPointerCancel != null && event.type == 'pointercancel') if (onPointerCancel != null && event.type == 'pointercancel')
return onPointerCancel(event); return onPointerCancel(event);
return EventDisposition.ignored;
} }
} }
...@@ -1500,24 +1496,16 @@ class WidgetSkyBinding extends SkyBinding { ...@@ -1500,24 +1496,16 @@ class WidgetSkyBinding extends SkyBinding {
assert(SkyBinding.instance is WidgetSkyBinding); assert(SkyBinding.instance is WidgetSkyBinding);
} }
EventDisposition handleEvent(sky.Event event, BindingHitTestEntry entry) { void handleEvent(sky.Event event, BindingHitTestEntry entry) {
EventDisposition disposition = EventDisposition.ignored;
for (HitTestEntry entry in entry.result.path) { for (HitTestEntry entry in entry.result.path) {
if (entry.target is! RenderObject) if (entry.target is! RenderObject)
continue; continue;
for (Widget target in RenderObjectWrapper.getWidgetsForRenderObject(entry.target)) { for (Widget target in RenderObjectWrapper.getWidgetsForRenderObject(entry.target)) {
if (target is Listener) { if (target is Listener)
EventDisposition targetDisposition = target._handleEvent(event); target._handleEvent(event);
if (targetDisposition == EventDisposition.consumed) {
return targetDisposition;
} else if (targetDisposition == EventDisposition.processed) {
disposition = EventDisposition.processed;
}
}
target = target._parent;
} }
} }
return combineEventDispositions(disposition, super.handleEvent(event, entry)); super.handleEvent(event, entry);
} }
void beginFrame(double timeStamp) { void beginFrame(double timeStamp) {
......
...@@ -219,7 +219,7 @@ class GestureDetector extends StatefulComponent { ...@@ -219,7 +219,7 @@ class GestureDetector extends StatefulComponent {
return null; return null;
} }
EventDisposition _handlePointerDown(sky.PointerEvent event) { void _handlePointerDown(sky.PointerEvent event) {
if (_tap != null) if (_tap != null)
_tap.addPointer(event); _tap.addPointer(event);
if (_showPress != null) if (_showPress != null)
...@@ -234,7 +234,6 @@ class GestureDetector extends StatefulComponent { ...@@ -234,7 +234,6 @@ class GestureDetector extends StatefulComponent {
_pan.addPointer(event); _pan.addPointer(event);
if (_scale != null) if (_scale != null)
_scale.addPointer(event); _scale.addPointer(event);
return EventDisposition.processed;
} }
Widget build() { Widget build() {
......
...@@ -81,18 +81,17 @@ class RenderInkWell extends RenderProxyBox { ...@@ -81,18 +81,17 @@ class RenderInkWell extends RenderProxyBox {
final List<InkSplash> _splashes = new List<InkSplash>(); final List<InkSplash> _splashes = new List<InkSplash>();
EventDisposition handleEvent(sky.Event event, BoxHitTestEntry entry) { void handleEvent(sky.Event event, BoxHitTestEntry entry) {
if (event is sky.GestureEvent) { if (event is sky.GestureEvent) {
switch (event.type) { switch (event.type) {
case 'gesturetapdown': case 'gesturetapdown':
_startSplash(event.primaryPointer, entry.localPosition); _startSplash(event.primaryPointer, entry.localPosition);
return EventDisposition.processed; break;
case 'gesturetap': case 'gesturetap':
_confirmSplash(event.primaryPointer); _confirmSplash(event.primaryPointer);
return EventDisposition.processed; break;
} }
} }
return EventDisposition.ignored;
} }
void _startSplash(int pointer, Point position) { void _startSplash(int pointer, Point position) {
......
...@@ -113,7 +113,7 @@ class Input extends StatefulComponent { ...@@ -113,7 +113,7 @@ class Input extends StatefulComponent {
); );
} }
EventDisposition focus(_) { void focus(_) {
if (Focus.at(this)) { if (Focus.at(this)) {
assert(_keyboardHandle.attached); assert(_keyboardHandle.attached);
_keyboardHandle.showByRequest(); _keyboardHandle.showByRequest();
...@@ -121,7 +121,6 @@ class Input extends StatefulComponent { ...@@ -121,7 +121,6 @@ class Input extends StatefulComponent {
Focus.moveTo(this); Focus.moveTo(this);
// we'll get told to rebuild and we'll take care of the keyboard then // we'll get told to rebuild and we'll take care of the keyboard then
} }
return EventDisposition.processed;
} }
void didUnmount() { void didUnmount() {
......
...@@ -209,7 +209,7 @@ class Navigator extends StatefulComponent { ...@@ -209,7 +209,7 @@ class Navigator extends StatefulComponent {
} }
if (visibleRoutes.length > 1) { if (visibleRoutes.length > 1) {
visibleRoutes.insert(1, new Listener( visibleRoutes.insert(1, new Listener(
onPointerDown: (_) { pop(); return EventDisposition.consumed; }, onPointerDown: (_) { pop(); },
child: new Container() child: new Container()
)); ));
} }
......
...@@ -174,9 +174,8 @@ abstract class Scrollable extends StatefulComponent { ...@@ -174,9 +174,8 @@ abstract class Scrollable extends StatefulComponent {
return scrollVelocity.clamp(_kMinFlingVelocity, _kMaxFlingVelocity) / _kMillisecondsPerSecond; return scrollVelocity.clamp(_kMinFlingVelocity, _kMaxFlingVelocity) / _kMillisecondsPerSecond;
} }
EventDisposition _handlePointerDown(_) { void _handlePointerDown(_) {
_stopAnimations(); _stopAnimations();
return EventDisposition.processed;
} }
void _handleDragUpdate(double delta) { void _handleDragUpdate(double delta) {
......
...@@ -68,20 +68,14 @@ class _RenderSwitch extends RenderToggleable { ...@@ -68,20 +68,14 @@ class _RenderSwitch extends RenderToggleable {
RadialReaction _radialReaction; RadialReaction _radialReaction;
EventDisposition handleEvent(sky.Event event, BoxHitTestEntry entry) { void handleEvent(sky.Event event, BoxHitTestEntry entry) {
if (event is sky.PointerEvent) { if (event is sky.PointerEvent) {
if (event.type == 'pointerdown') { if (event.type == 'pointerdown')
_showRadialReaction(entry.localPosition); _showRadialReaction(entry.localPosition);
return combineEventDispositions(EventDisposition.processed, else if (event.type == 'pointerup')
super.handleEvent(event, entry));
}
if (event.type == 'pointerup') {
_hideRadialReaction(); _hideRadialReaction();
return combineEventDispositions(EventDisposition.processed,
super.handleEvent(event, entry));
}
} }
return super.handleEvent(event, entry); super.handleEvent(event, entry);
} }
void _showRadialReaction(Point startLocation) { void _showRadialReaction(Point startLocation) {
......
...@@ -458,7 +458,7 @@ class TabBar extends Scrollable { ...@@ -458,7 +458,7 @@ class TabBar extends Scrollable {
.clamp(scrollBehavior.minScrollOffset, scrollBehavior.maxScrollOffset); .clamp(scrollBehavior.minScrollOffset, scrollBehavior.maxScrollOffset);
} }
EventDisposition _handleTap(int tabIndex) { void _handleTap(int tabIndex) {
if (tabIndex != selectedIndex) { if (tabIndex != selectedIndex) {
if (_tabWidths != null) { if (_tabWidths != null) {
if (isScrollable) if (isScrollable)
...@@ -467,9 +467,7 @@ class TabBar extends Scrollable { ...@@ -467,9 +467,7 @@ class TabBar extends Scrollable {
} }
if (onChanged != null) if (onChanged != null)
onChanged(tabIndex); onChanged(tabIndex);
return EventDisposition.processed;
} }
return EventDisposition.ignored;
} }
Widget _toTab(TabLabel label, int tabIndex, Color color, Color selectedColor) { Widget _toTab(TabLabel label, int tabIndex, Color color, Color selectedColor) {
......
...@@ -178,9 +178,9 @@ class SpriteBox extends RenderBox { ...@@ -178,9 +178,9 @@ class SpriteBox extends RenderBox {
} }
} }
EventDisposition handleEvent(sky.Event event, _SpriteBoxHitTestEntry entry) { void handleEvent(sky.Event event, _SpriteBoxHitTestEntry entry) {
if (!attached) if (!attached)
return EventDisposition.ignored; return;
if (event is sky.PointerEvent) { if (event is sky.PointerEvent) {
...@@ -229,7 +229,6 @@ class SpriteBox extends RenderBox { ...@@ -229,7 +229,6 @@ class SpriteBox extends RenderBox {
} }
} }
} }
return EventDisposition.ignored;
} }
bool hitTest(HitTestResult result, { Point position }) { bool hitTest(HitTestResult result, { Point position }) {
......
...@@ -15,9 +15,8 @@ class Inside extends StatefulComponent { ...@@ -15,9 +15,8 @@ class Inside extends StatefulComponent {
); );
} }
EventDisposition _handlePointerDown(_) { void _handlePointerDown(_) {
setState(() { }); setState(() { });
return EventDisposition.processed;
} }
} }
...@@ -37,9 +36,8 @@ class Middle extends StatefulComponent { ...@@ -37,9 +36,8 @@ class Middle extends StatefulComponent {
); );
} }
EventDisposition _handlePointerDown(_) { void _handlePointerDown(_) {
setState(() { }); setState(() { });
return EventDisposition.processed;
} }
} }
......
...@@ -105,8 +105,8 @@ class WidgetTester { ...@@ -105,8 +105,8 @@ class WidgetTester {
HitTestResult _hitTest(Point location) => SkyBinding.instance.hitTest(location); HitTestResult _hitTest(Point location) => SkyBinding.instance.hitTest(location);
EventDisposition _dispatchEvent(sky.Event event, HitTestResult result) { void _dispatchEvent(sky.Event event, HitTestResult result) {
return SkyBinding.instance.dispatchEvent(event, result); SkyBinding.instance.dispatchEvent(event, result);
} }
void tap(Widget widget, { int pointer: 1 }) { void tap(Widget widget, { int pointer: 1 }) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment