- 04 Dec, 2015 1 commit
-
-
Adam Barth authored
Fixes #689
-
- 01 Dec, 2015 1 commit
-
-
Ian Hickson authored
-
- 20 Nov, 2015 2 commits
-
-
Adam Barth authored
The old name was confusing. Fixes #462
-
Hixie authored
- `Scaffold.of(context).showBottomSheet(widget);` - Returns an object with .closed Future and .close() method. - Uses a StateRoute to handle back button. - Take the Navigator logic out of the BottomSheet widget. - Support showing a sheet while an old one is going away. - Add Navigator.remove().
-
- 18 Nov, 2015 1 commit
-
-
Hixie authored
I'm planning on adding more .of() functions and so to avoid further copypasta I'm providing some general utility functions here.
-
- 13 Nov, 2015 1 commit
-
-
Adam Barth authored
When we reactivate a subtree that had a global key, we weren't updating the parent data because: 1) The child wasn't in the tree when we updated the parent data element. 2) The activated child didn't go through mount (just through update). This patch moves the parent data update work to when we attach the render object, which we do both during mount and when reactivating a child. Fixes #345
-
- 04 Nov, 2015 1 commit
-
-
Hixie authored
- change how we expose settings at the RenderObject layer so that it's easier to maintain. - expose the Widget owner chain in the RenderObject layer debug output - add debug info to RenderOpacity, RenderIgnorePointer, RenderListener - make the output for text nodes prettier
-
- 28 Oct, 2015 1 commit
-
-
Hixie authored
-
- 27 Oct, 2015 1 commit
-
-
Ian Hickson authored
- Change RouteArguments to pass the route's BuildContext rather than the Navigator. This caused the bulk of the examples/ and .../test/ changes (those are mostly mechanical changes). It also meant I could simplify Navigator.of(). - Make initState() actually get called when the State's Element is in the tree, so you can use Foo.of() functions there. Added a test for this also. - Provide a RouteWidget so that routes have a position in the Widget tree. The bulk of the route logic is still in a longer-lived Route object for now. - Make Route.setState() only rebuild the actual route, not the whole navigator. - Provided a Route.of(). - Provided a Route.writeState / Route.readState API that tries to identify the clients by their runtimeType, their key, and their ancestors keys, up to the nearest ancestor with a GlobalKey. - Made scrollables hook into this API to track state. Added a test to make sure this works. - Fix the debug output of GestureDetector and the hashCode of MixedViewport. - Fixed ScrollableWidgetListState<T> to handle infinite lists.
-
- 26 Oct, 2015 1 commit
-
-
Ian Hickson authored
Fixes #1687.
-
- 21 Oct, 2015 1 commit
-
-
Hixie authored
Sometimes you need a Key (not a GlobalKey) that is only equal to itself but can be used multiple times in the tree. Enter UniqueKey!
-
- 19 Oct, 2015 1 commit
-
-
Hixie authored
It turns out that an AnimatedContainer with a BoxDecoration would start animating every single time it was built, whether or not the container's decoration had changed.
-
- 16 Oct, 2015 1 commit
-
-
Hixie authored
(These are all the debugging-related fixes and trivial typo fixes that I extracted out of my heroes branch.) Fix rendering.dart import order. Introduce a debugLabel for Performances so that when you create a performance, you can tag it so that if later you print it out, you can figure out which performance it is. Allow the progress of a PerformanceView to be determined (but not set). Allow subclasses of PerformanceView that are constants to be created by defining a constant constructor for PerformanceView. Introduce a debugPrint() method that throttles its output. This is a test to see if it resolves the problems people have been having with debugDumpRenderTree() et al having their output corrupted on Android. It turns out (according to some things I read On The Internets) that Android only has a 64KB kernel buffer for its logs and and if you output to it too fast, it'll drop data on the floor. If this does in fact reliably resolve this problem, we should probably move the fix over to C++ land (where "print" is implemented) so that any use of print is handled (avoiding the interleaving problem we have now if you use both debugPrint() and print()). Fix a bug with the debugging code for "size". In the specific case of a RenderBox having a parent that doesn't set parentUsesSize, then later the parent setting parentUsesSize but the child having its layout short-circuited (e.g. because the constraints didn't change), we didn't update the _DebugSize object to know that now it's ok that the size be used by the parent, and we'd assert. Also, allow a _DebugSize to be used to set the size of yourself. Previously you could only set your size from a regular Size or from your child's _DebugSize. Add more debugging information to various Widgets where it might be helpful. Make GlobalKey's toString() include the runtimeType so that when subclassing it the new class doesn't claim to be a GlobalKey instance. Include the Widget's key in the Element's description since we don't include it in the detailed description normally (it's in the name part). Fix a test that was returning null from a route.
-
- 15 Oct, 2015 1 commit
-
-
Hixie authored
Teach dumpRenderTree() to draw actual trees. Make the TextStyle output terser so it doesn't overflow the output. Make debugDumpApp() say what mode we're in (checked vs release). Hide lifecycle state from release mode dumps (since it's checked-only state).
-
- 12 Oct, 2015 1 commit
-
-
Hixie authored
Add type annotations in many places. Fix some identifiers to have more lint-satisfying names. Make all operator==s consistent in style. Reorder some functions for consistency. Make ParentData no longer dynamic, and fix all the code around that.
-
- 10 Oct, 2015 1 commit
-
-
Adam Barth authored
-
- 08 Oct, 2015 2 commits
-
-
Hixie authored
Also, have dialog buttons use the accent colour. Also, generally rationalise some of this stuff to match Material better.
-
Hixie authored
The root cause was that we crawled the tree to mark anyone who depended on the updated theme dirty _after_ we crawled it to rebuild it. Thus, if anyone was already marked dirty when the process started, then got marked clean by the first (rebuild) walk, then got marked dirty again by the notification, they'd be clean when they got the notification, despite already being in the dirty list, which would cause an assertion. Also IconTheme didn't have an operator==, so it was independently too aggressive about updates.
-
- 07 Oct, 2015 1 commit
-
-
Hixie authored
Previously, RenderObjectElements didn't support being marked dirty. This is fine, except for MixedViewport and HomogeneousViewport, which have builder functions to which they hand themselves as a BuildContext. If those builder functions call, e.g., Theme.of(), then when the theme changes, the Inherited logic tries to tell the RenderObjectElement object that its dependencies changed and that doesn't go down well. This patch fixes this by making RenderObjectElement a BuildableElement, and making MixedViewport and HomogeneousViewport hook into that to rebuild themselves appropriately. Also, this was only found at all because ThemeData didn't implement operator==, so we were aggressively marking the entire tree dirty all the time. That's fixed here too. Also, I changed card_collection.dart to have more features to make this easier to test. This found bugs #1524, #1522, #1528, #1529, #1530, #1531.
-
- 06 Oct, 2015 1 commit
-
-
Adam Barth authored
Now SnackBar is an ephemeral route that uses a Placeholder to put itself into the Scaffold. Fixes #673
-
- 05 Oct, 2015 3 commits
-
-
Hixie authored
Focus.at() and company should be on Focus, not FocusState. _notifyDescendants() was using the wrong runtimeType. Let InheritedWidget update the descendants during build. When you setState() during build, assert that you're not markNeedsBuild()ing someone who isn't a descendant. Typo in Widget.toString().
-
Hixie authored
(These are changes cherry-picked from in-flight branches since they are more independent and could be helpful even without those changes.) - Change RouteBuilder's signature to take a single argument in which the other fields are placed, so that we can keep iterating on those arguments without having to break compatibility each time. Also, this makes defining route builders much simpler (only one argument to ignore rather than a variable number). - Expose the next performance to RouteBuilders, since sometimes the route itself might not be where it's used. - Allow BuildContext to be used to walk children, just like it can for ancestors - Allow BuildContext to be used to get the Widget of the current BuildContext - Allow StatefulComponentElement to be referenced with a type specialisation so that you don't have to cast when you know what the type you're dealing with actually is.
-
Hixie authored
Also, fix comment mentioning syncConstructorArguments.
-
- 02 Oct, 2015 2 commits
-
-
Hixie authored
I'm not sure this specific incarnation of the test ever crashed, since the original test depended on user interaction and now works fine, but just in case, here's a regression test for it so I can close that issue. This also slightly changes the Widget.toString() output to include the key since that will make debugging easier.
-
Adam Barth authored
This patch causes widgets with global keys to drag their state (including their children) with them as they travel through the element tree.
-
- 01 Oct, 2015 4 commits
-
-
Adam Barth authored
This patch prepares us to move these elements around in the tree.
-
Hixie authored
Mostly because we can, but hopefully it'll catch someone who accidentally copypasted their createState method.
-
Hixie authored
This removes GlobalKey.currentElement in favour of GlobalKey.currentContext.
-
Adam Barth authored
-
- 26 Sep, 2015 1 commit
-
-
Adam Barth authored
-
- 23 Sep, 2015 1 commit
-
-
Hixie authored
Remove the Widgets framework's PointerEventListener definition now that the Rendering layer has one. It was previously clashing in files that imported both, which would result in it being hidden. Turns out MineDigger is the only example that this affects.
-
- 21 Sep, 2015 2 commits
-
-
Adam Barth authored
All the use cases for EventDisposition are now addressed by the gesture detection system.
-
Adam Barth authored
-
- 19 Sep, 2015 1 commit
-
-
Adam Barth authored
This patch contains a prototype of a new widget framework. In this framework, Components can be reused in the tree as many times as the author desires. Also, StatefulComponent is split into two pieces, a ComponentConfiguration and a ComponentState. The ComponentConfiguration is created by the author and can be reused as many times as desired. When mounted into the tree, the ComponentConfiguration creates a ComponentState to hold the state for the component. The state remains in the tree and cannot be reused.
-
- 18 Sep, 2015 3 commits
-
-
Hixie authored
That way it's closer to where it's used, and it's more obvious that anyone can write such functions.
-
Hixie authored
This might be helpful for #1219. Also, remove inDebugMode since it's redundant with just using asserts, which compile entirely out in release mode.
-
Hixie authored
When we sync() a Component, we need to clear the old Component's _child pointer, otherwise if we reuse that Component we'll get confused about what the old child is.
-
- 17 Sep, 2015 3 commits
-
-
Hixie authored
We need a short name more often than a tree dump, so toString() should be the short name. Make debugDumpRenderTree() a global like debugDumpApp(), for consistency. It's hard to remember the SkyBinding.instance.dumpRenderTree() incantation. Fixes #1179.
-
Hixie authored
We were not removing children if they were more recently synced than we were. This makes no sense. We should remove all children unless they were synced this very generation already (in which case they'll be somewhere else in the tree by now).
-
Adam Barth authored
What's important about this code is that it's presenting services outside the VM, not the particular technology used to present the services.
-