1. 22 Sep, 2015 1 commit
  2. 21 Sep, 2015 1 commit
    • Adam Barth's avatar
      Remove EventDisposition · 051354ae
      Adam Barth authored
      All the use cases for EventDisposition are now addressed by the gesture
      detection system.
      051354ae
  3. 17 Sep, 2015 2 commits
    • Hixie's avatar
      Improve debugging aids for widgets, rendering. · 970c8ce8
      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.
      970c8ce8
    • Adam Barth's avatar
      Create gestures.dart · 41b8ffd6
      Adam Barth authored
      This patch is part of a sequence of patches towards fewer top-level libraries.
      In this patch, the gesture libraries are combined into one gestures.dart
      library.
      41b8ffd6
  4. 11 Sep, 2015 1 commit
  5. 08 Sep, 2015 2 commits
    • Adam Barth's avatar
      Remove package:sky/base · 6fc343a0
      Adam Barth authored
      These files really belong on other libraries.
      6fc343a0
    • Adam Barth's avatar
      Introduce package:sky/animation.dart · b356d146
      Adam Barth authored
      Move the animation libraries into src/animation and change importers to use
      package:sky/animation.dart. Also, move scheduler.dart into the animation
      library so that the animation library can be self-contained.
      b356d146
  6. 04 Sep, 2015 1 commit
  7. 02 Sep, 2015 1 commit
    • Adam Barth's avatar
      Move widgets and rendering inside src · 693ddcd8
      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.
      693ddcd8
  8. 30 Aug, 2015 1 commit
    • Adam Barth's avatar
      Scrolls should start immediately when possible · bef55951
      Adam Barth authored
      If there are no other gestures in the arena, we should kick off the scroll
      gesture right away. This change pulled a refactoring of how we dispatch events
      to Widgets. Now we dispatch events to Widgets interleaved with their associated
      RenderObjects. (Previously we dispatched to all of the RenderObjects first.)
      bef55951
  9. 27 Aug, 2015 1 commit
    • Adam Barth's avatar
      Add PointerRouter · 45f2c589
      Adam Barth authored
      This patch is the first step towards implementing gestures. The pointer router
      allows the gesture detectors to hook in at the end of the pointer event
      propagation chain.
      
      Related to #145
      45f2c589
  10. 25 Aug, 2015 1 commit
    • Adam Barth's avatar
      Don't freeze devicePixelRatio at startup · a733e91b
      Adam Barth authored
      When we start, we might not have initialized the devicePixelRatio value. The
      value will be initialized by the time we paint, so now we update the value
      every time we paint.
      a733e91b
  11. 20 Aug, 2015 3 commits
    • Hixie's avatar
    • Adam Barth's avatar
      Remove RenderView.paintFrame · 077e75e8
      Adam Barth authored
      We now use the repaint system to do all the painting. During initialization, we
      set up a root layer that applies the device pixel ratio.
      
      Fixes #706
      077e75e8
    • Hixie's avatar
      Improvements for Layers logic · 654fc734
      Hixie authored
      - Introduce some new Layer classes.
      - Introduce paintChildWith* methods.
      - Convert paint() methods to use paintChildWith* where appropriate.
      - Fix paintBounds logic in Layer world.
      - Introduce Layer.replaceWith(), so that it's clearer what's going on.
      - Make RenderObjects have a ContainerLayer, not a PictureLayer.
      - Introduce a PaintingContext.replacingLayer() constructor to highlight
        where we are creating a layer just to replace an older one.
      - Rename some layer-related methods and fields for clarity:
         requiresCompositing -> hasLayer
         hasCompositedDescendant -> needsCompositing
         updateCompositing -> updateCompositingBits
         _needsCompositingUpdate -> _needsCompositingBitsUpdate
         markNeedsCompositingUpdate -> markNeedsCompositingBitsUpdate
      - After updating compositing bits, if we find that the bit changed, we
        now call markNeedsPaint().
      - Reorder markNeedsPaint() logic for clarity.
      - Make flushPaint() start at the deepest node.
      - Make _compositeChild() avoid repainting children with hasLayer that
        aren't dirty, instead it just reuses their existing layer.
      - Made RenderView reuse the RenderObject layer instead of having its own.
      - Made RenderView have hasLayer set to true.
      - Add various asserts and comments.
      654fc734
  12. 19 Aug, 2015 1 commit
    • Adam Barth's avatar
      Split box.dart into many files · 50bfdedb
      Adam Barth authored
      Sadly, box.dart has grown much longer than 1000 lines. This patch splits it up
      into several files based on the class hierarchy. Fortunately, many of these
      classes are loosely coupled to each other.
      50bfdedb
  13. 17 Aug, 2015 1 commit
    • Adam Barth's avatar
      Add support for drag-and-drop · ac0ec322
      Adam Barth authored
      Widgets that want to receive drops should include a DropTarget in their build.
      Currently there's no widget for initiating a drag. Components can use the
      DragController directly. In the future, we'll probably want to add a Draggable
      that knows how to do some of this work automatically.
      
      Fixes #612
      ac0ec322
  14. 14 Aug, 2015 1 commit
    • Adam Barth's avatar
      Add a compositing update phase · e17aa1b6
      Adam Barth authored
      We need to compute whether a RenderObject has a composited descendant so that
      we can decide whether to use canvas.saveLayer or to create a new composited
      layer while walking down the tree during painting.
      
      The compositing update walks the tree from the root only to places where the
      tree's structure has been mutated. In the common case during an animation loop,
      we won't need to visit any render object beyond the root.
      e17aa1b6
  15. 13 Aug, 2015 1 commit
    • Adam Barth's avatar
      Add a compositing step to the lifecycle · bf260f98
      Adam Barth authored
      Now we have the ability to draw multiple PictureLayers. We still squash all the
      pictures together into a single SkPicture for simplicity. In the future, we'll
      submit them to C++ separately and composite them on the GPU thread.
      bf260f98
  16. 04 Aug, 2015 1 commit
    • James Robinson's avatar
      Teach event system about disposition and make 'consumed' disposition terminal · 53163f8b
      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.
      53163f8b
  17. 30 Jul, 2015 1 commit
    • Adam Barth's avatar
      Sporadic crash from invalid touch event · 3c14e41b
      Adam Barth authored
      When embedded by the view_manager, sometimes we receive pointerup or
      pointercancel events without having received a cooresponding pointerdown event.
      The underlying issue is that the view_manager doesn't capture on pointerdown
      and instead performs a new hit test for every pointer event. We should fix that
      in view_manager, but, in the meantime, this patch makes us not crash in this
      scenario.
      
      Fixes #339
      3c14e41b
  18. 28 Jul, 2015 3 commits
  19. 16 Jul, 2015 1 commit