From 2e8e2d0b72896d771ab96bfe9339f5518ca4e6b8 Mon Sep 17 00:00:00 2001 From: Eric Seidel Date: Wed, 8 Jul 2015 13:47:39 -0700 Subject: [PATCH] Make RenderBlock painting match its hittesting I added a clip in RenderBlock to make the painted pixels match the hittesting logic. This at least makes obvious all the numerous hittesting bugs in our system. :) I also moved demo_launcher to ScrollableList awesomeness. R=abarth@chromium.org, abarth@google.com Review URL: https://codereview.chromium.org/1223083002 . --- sdk/example/demo_launcher/lib/main.dart | 20 +++++++++----------- sdk/lib/rendering/block.dart | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/sdk/example/demo_launcher/lib/main.dart b/sdk/example/demo_launcher/lib/main.dart index 75c0f46fe1f..0ad0bb18163 100644 --- a/sdk/example/demo_launcher/lib/main.dart +++ b/sdk/example/demo_launcher/lib/main.dart @@ -19,6 +19,7 @@ import 'package:sky/widgets/scaffold.dart'; import 'package:sky/widgets/task_description.dart'; import 'package:sky/widgets/theme.dart'; import 'package:sky/widgets/tool_bar.dart'; +import 'package:sky/widgets/scrollable_list.dart'; AssetBundle _initBundle() { if (rootBundle != null) @@ -132,11 +133,7 @@ List demos = [ const double kCardHeight = 120.0; const EdgeDims kListPadding = const EdgeDims.all(4.0); -class DemoList extends FixedHeightScrollable { - DemoList({ String key }) : super(key: key, itemHeight: kCardHeight, padding: kListPadding); - - int get itemCount => demos.length; - +class DemoList extends Component { Widget buildDemo(SkyDemo demo) { return new Listener( key: demo.name, @@ -166,12 +163,13 @@ class DemoList extends FixedHeightScrollable { ); } - List buildItems(int start, int count) { - return demos - .skip(start) - .take(count) - .map(buildDemo) - .toList(growable: false); + Widget build() { + return new ScrollableList( + items: demos, + itemHeight: kCardHeight, + itemBuilder: buildDemo, + padding: kListPadding + ); } } diff --git a/sdk/lib/rendering/block.dart b/sdk/lib/rendering/block.dart index 939e62ceaba..11f20ef30ab 100644 --- a/sdk/lib/rendering/block.dart +++ b/sdk/lib/rendering/block.dart @@ -15,6 +15,8 @@ class RenderBlock extends RenderBox with ContainerRenderObjectMixin children }) { @@ -94,7 +96,12 @@ class RenderBlock extends RenderBox with ContainerRenderObjectMixin size.height; assert(!size.isInfinite); } @@ -103,7 +110,14 @@ class RenderBlock extends RenderBox with ContainerRenderObjectMixin