1. 24 Apr, 2016 1 commit
    • Adam Barth's avatar
      Add Flow layout · f53a5a52
      Adam Barth authored
      A flow layout is optimized for reposition children with transformation
      matrices. A flow layout can animate the position of its children very
      efficiently.
      f53a5a52
  2. 23 Apr, 2016 3 commits
  3. 22 Apr, 2016 9 commits
  4. 21 Apr, 2016 7 commits
    • Ian Hickson's avatar
      Make the widgets binding reusable. (#3479) · 0e11b0e6
      Ian Hickson authored
      Previously the widgets layer only provided a concrete binding, which
      makes it awkward to extend it compared to other bindings. This moves
      widgets to the same style as the other layers.
      
      In a subsequent patch I'll use this to make the tests layer saner.
      0e11b0e6
    • Matt Perry's avatar
      Add a text selection handle for the collapsed case. (#3467) · 6ca36a94
      Matt Perry authored
      Also simplify handle drawing. All 3 cases are the same, just rotated.
      
      Also fix selection changes on iOS.
      6ca36a94
    • Eric Seidel's avatar
      Add a service extension for toggling the PerformanceOverlay · 898b3ce8
      Eric Seidel authored
      This only works for apps which use WidgetsApp.  Apps which don't
      (like the game) could presumably read the static themselves
      off of WidgetsApp.
      
      @devoncarew @hixie
      898b3ce8
    • Ian Hickson's avatar
      Refactor the Gesturer's interfaces (#3459) · 3142aba4
      Ian Hickson authored
      * Refactor the Gesturer's interfaces
      
      This makes them more coherent.
      
      It also makes it easier for the tests to override each specific part of
      hit-testing, should that be necessary.
      
      * Update binding.dart
      3142aba4
    • Matt Perry's avatar
      Add basic text selection to editable text. (#3223) · 11f236ec
      Matt Perry authored
      Only partially works. Editing the selected text doesn't work very well,
      which probably will require engine changes. Currently only draws the
      selected text and allows you to manipulate the selection with draggable
      selection handles.
      11f236ec
    • Hans Muller's avatar
      Gallery Smoke Test (#3446) · 986b0174
      Hans Muller authored
      * Gallery Smoke Test
      986b0174
    • Adam Barth's avatar
      A blinking cursor should push only one frame (#3445) · 161f945e
      Adam Barth authored
      Prior to this patch, we were pushing two frames each time the cursor blinked.
      In turning the cursor on or off, the markNeedsPaint call was triggering another
      frame to be scheduled because we cleared a bit in the scheduler at the
      beginning of the frame instead of at the end of the frame.
      
      To implement scheduling correctly, we actually need two bits: one for
      ensureVisualUpdate, which just promises to get to the end of the pipeline soon,
      and scheduleFrame, which promises to get to the beginning of the pipeline soon.
      161f945e
  5. 20 Apr, 2016 8 commits
  6. 19 Apr, 2016 6 commits
    • Hans Muller's avatar
      Remove Scaffold scrollableKey use in gallery demos (#3406) · c7e2e8ae
      Hans Muller authored
      * Remove Scaffold scrollable_key demo usage
      c7e2e8ae
    • Ian Hickson's avatar
      Give DefaultAssetBundle a default asset bundle. (#3422) · 6e0c76f4
      Ian Hickson authored
      This makes it easier to use e.g. AssetImage in simple test applications.
      
      Also, dartdoc improvements.
      
      Also, use @required in one place, to see if it causes any trouble. If it
      doesn't, I'll start using it in more places.
      6e0c76f4
    • Devon Carew's avatar
      add a service extension for repaint rainbow (#3409) · dd2bde19
      Devon Carew authored
      * add a service extension for repaint rainbow
      
      * review comments
      dd2bde19
    • Ian Hickson's avatar
      Make rootBundle handle the no-mojo case. (#3408) · 6dc440bd
      Ian Hickson authored
      The defaulting logic for bundles really belongs in the services layer,
      not the widgets layer. This way we can tell non-widget code just to use
      rootBundle if it just wants to read a JSON file or some such.
      6dc440bd
    • Ian Hickson's avatar
      Refactor service extensions (#3397) · 261923e5
      Ian Hickson authored
      Bindings now have a debugRegisterServiceExtensions() method that is
      invoked in debug mode (only). (Once we have a profile mode, there'll be
      a registerProfileServiceExtensions() method that gets called in that
      mode only to register extensions that apply then.)
      
      The BindingBase class provides convenience methods for registering
      service extensions that do the equivalent of:
      
      ```dart
      void extension() { ... }
      bool extension([bool enabled]) { ... }
      double extension([double extension])  { ... }
      Map<String, String> extension([Map<String, String> parameters]) { ... }
      ```
      
      The BindingBase class also itself registers ext.flutter.reassemble,
      which it has call a function on the binding called
      reassembleApplication().
      
      The Scheduler binding now exposes the preexisting
      ext.flutter.timeDilation.
      
      The Renderer binding now exposes the preexisting ext.flutter.debugPaint.
      
      The Renderer binding hooks reassembleApplication to trigger the
      rendering tree to be reprocessed (in particular, to fix up the
      optimisation closures).
      
      All the logic from rendering/debug.dart about service extensions is
      replaced by the above.
      
      I moved basic_types to foundation.
      
      The FlutterWidgets binding hooks reassembleApplication to trigger the
      widget tree to be entirely rebuilt.
      
      Flutter Driver now uses ext.flutter.driver instead of
      ext.flutter_driver, and is hooked using the same binding mechanism.
      Eventually we'll probably move the logic into the Flutter library so
      that you just get it without having to invoke a special method first.
      261923e5
    • Ian Hickson's avatar
      Rearrange scheduling library (#3388) · 61605a9d
      Ian Hickson authored
      To be more consistent with other parts of the platform:
      
      * put the binding in a binding.dart file.
      
      * rearrange some members of the Scheduler class to be more close to
        execution order.
      
      * factor out Priority class into its own file.
      
      * add more dart docs.
      61605a9d
  7. 16 Apr, 2016 1 commit
  8. 15 Apr, 2016 5 commits
    • Ian Hickson's avatar
      Material Data Tables (#3337) · a91bc0ba
      Ian Hickson authored
      + Add new demo to gallery to show data tables. (This currently doesn't
      use a Card; I'll create a Card version in a subsequent patch.)
      
      + Fix checkbox alignment. It now centers in its box regardless.
      
      + Add Colors.black54.
      
      + Some minor fixes to dartdocs.
      
      + DataTable, DataColumn, DataRow, DataCell
      
      + RowInkWell
      
      + Augment dartdocs of materia/debug.dart.
      
      + DropDownButtonHideUnderline to hide the underline in a drop-down when
        used in a DataTable.
      
      + Add new capabilities to InkResponse to support RowInkWell.
      
      + Augment dartdocs of materia/material.dart.
      
      + Add an assert to catch nested Blocks.
      
      + Fix a crash in RenderBox when you remove an object and an ancestor
        used its baseline. (https://github.com/flutter/flutter/issues/2874)
      
      + Fix (and redocument) RenderBaseline/Baseline.
      
      + Add flex support to IntrinsicColumnWidth.
      
      + Document more stuff on the RenderTable side.
      
      + Fix a bug with parentData handling on RenderTable children.
      
      + Completely rewrite the column width computations. The old logic made
        no sense at all.
      
      + Add dartdocs to widgets/debug.dart.
      
      + Add a toString for TableRow.
      a91bc0ba
    • Ian Hickson's avatar
    • Ian Hickson's avatar
    • Ian Hickson's avatar
      Use the same logic in flushPaint as flushLayout (#3353) · d348f28d
      Ian Hickson authored
      If two repaint boundaries mark themselves dirty, but the second one is a
      child of the first, then the second one will get repainted by the first
      and then when we come to paint it directly, we get confused because it
      isn't dirty any more.
      
      We ran into this in layout before. Apply the same fix. Also, apply the
      same fix to composition while we're at it.
      d348f28d
    • Ian Hickson's avatar
      have invokeFrameCallback print the right stack (#3351) · d9ca22a3
      Ian Hickson authored
      Exception stack variable was shadowing the function argument stack.
      d9ca22a3