- 04 Aug, 2015 3 commits
-
-
Hans Muller authored
-
Adam Barth authored
It was confusing to have both widget.dart and widgets.dart
-
James Robinson authored
This introduces the notion of event disposition and allows event targets (widgets and render objects) to consume events that should not be processed further. This is needed by the Switch component in the Drawer in the stocks example. The Switch is embedded in a DrawerItem. The Switch handles the gesture tap event to toggle its state and should handle pointer events to allow swiping and draw its own radial reaction. The DrawerItem also handles gesture taps to allow toggling the switch value when tapping anywhere on the drawer and to draw its own ink splash. When tapping on the switch, both the switch's render object and the DrawerItem's listener are in the event dispatch path. The Switch needs to signal in some fashion that it consumed the event so the DrawerItem does not also try to toggle the switch's state.
-
- 03 Aug, 2015 1 commit
-
-
Adam Barth authored
- Center the labels on the tabs - Make the drawer's mask visible
-
- 29 Jul, 2015 1 commit
-
-
Hans Muller authored
-
- 28 Jul, 2015 3 commits
-
-
Chinmay Garde authored
-
Chinmay Garde authored
-
Hans Muller authored
When the selected tab changes in a TabBar for which isScrollable:true, animate the selected tab to the center of the viewport, if that's possible. Added an optional duration: to Scrollable.scrollTo(newOffset, duration: d) which animates the scroll to newOffset. Refactored the Scrollable implementation a little to make the roles of the "toEnd" and "toOffset" animations clearer. _handlePointerDown() now stops both animations. Similarly, we only call settleScrollOffset() from the cancel gesture handlers if the animations aren't already running.
-
- 27 Jul, 2015 1 commit
-
-
Hans Muller authored
-
- 22 Jul, 2015 2 commits
-
-
Hixie authored
In theory, before, if you had the same image twice in a scrolling container, you'd get an assertion with no way around it. This makes those nodes not bother making keys by default, which is cheaper and more correct.
-
Hixie authored
This fixes some theoretical bugs whereby we were using hashCode to try to get unique keys for objects, but really we wanted object identity. It also lays the groundwork for a new GlobalKey concept. I tried to keep the impact on the code minimal, which is why the "Key" constructor is actually a factory that returns a StringKey. The code has this class hierarchy: ``` KeyBase | Key--------------+---------------+ | | | StringKey ObjectKey UniqueKey ``` ...where the constructors are Key and Key.stringify (StringKey), Key.fromObjectIdentity (ObjectKey), and Key.unique (UniqueKey). We could instead of factory methods use regular constructors with the following hierarchy: ``` KeyBase | LocalKey---------+---------------+ | | | Key ObjectIdentityKey UniqueKey ``` ...with constructors Key, Key.stringify, ObjectIdentityKey, and UniqueKey, but I felt that that was maybe a more confusing hierarchy. I don't have a strong opinion on this.
-
- 16 Jul, 2015 1 commit
-
-
Collin Jackson authored
-