- 11 Sep, 2015 1 commit
-
-
Hixie authored
If it's a StatefulComponent, then it's ok to reuse it so long as it hasn't been initialised. If it's a regular Component or a TagNode, then it's always ok to reuse. If it's a RenderObjectWrapper, then it's ok to reuse so long as it doesn't have a renderObject. To put it another way, this changes how we prevent the following nonsensical situations from arising: - Sync two stateful StatefulComponents together - Sync two RenderObjectWrappers with RenderObjects together When either of those cases happen, we just drop the old one on the ground and use the new one unchanged.
-
- 09 Sep, 2015 1 commit
-
-
Adam Barth authored
-
- 04 Sep, 2015 1 commit
-
-
Hixie authored
-
- 02 Sep, 2015 1 commit
-
-
Adam Barth authored
Code outside of package:sky should import this code using package:sky/rendering.dart package:sky/widgets.dart Moving this code into the "src" directory is a convention that signifies that and it cleans up the generated dartdoc because the libraries in the src directory aren't included in the generated documentation. Instead, the classes are documented in the widgets.dart and rendering.dart libraries.
-
- 31 Aug, 2015 1 commit
-
-
Hixie authored
Adds a HomogeneousViewport class that works like MixedViewport but handles only children that have all the same height. Converts ScrollableWidgetList to use that, so that we don't waste a frame looking at the size of the contents each time we change size. This allows a number of seemingly pointless double-pumps in the tests to be removed. Other changes that were necessary to support the above: - RenderBlock now supports minExtent (think 'min-height' in CSS) - RenderBlock now supports itemExtent (forces the height of each child to be the same, so that the itemExtent passed to the fixed- height scrollables are all authoritative instead of a source of bugs when they don't match) - RenderBlockViewport now supports horizontal scrolling - improved the style of the isInfinite assert in box.dart - fixed the position of a comment in mixed_viewport.dart - added a test - made the logic for how many items to show be more precise
-
- 28 Aug, 2015 3 commits
-
-
Hixie authored
We need to always remove the widget when you sync a non-visible widget, even if we already have it, because otherwise we'll try to sync it with null again later, which causes a crash. Test in #938.
-
Hixie authored
...and not when we mount and dismount. Turns out that when we dismount, it's too late -- we've already set renderObject to null. We also mark the mixed viewport as dirty when it is removed from its parent. Without this, we try to reuse the child nodes in subsequent syncs, which is a disaster.
-
Hixie authored
-
- 26 Aug, 2015 2 commits
- 21 Aug, 2015 1 commit
-
-
Adam Barth authored
Block -> BlockBody ScrollableBlock -> Block FixedHeightScrollable -> ScrollableWidgetList VariableHeightScrollable -> ScrollableMixedWidgetList BlockViewport -> MixedViewport
-
- 20 Aug, 2015 2 commits
-
-
Adam Barth authored
This function just calls remove(). Also, have Widget do the recursive remove walk by calling walkChildren.
-
Adam Barth authored
We now use the term `renderObject`. Fixes #708
-
- 17 Aug, 2015 1 commit
-
-
Adam Barth authored
The name `root` is confusing because this value isn't the root of anything. It's just the associated `RenderObject` instance.
-
- 04 Aug, 2015 1 commit
-
-
Adam Barth authored
It was confusing to have both widget.dart and widgets.dart
-
- 28 Jul, 2015 2 commits
-
-
Chinmay Garde authored
-
Chinmay Garde authored
-
- 22 Jul, 2015 1 commit
-
-
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.
-
- 20 Jul, 2015 1 commit
-
-
Hans Muller authored
-
- 16 Jul, 2015 1 commit
-
-
Collin Jackson authored
-