Merge pull request dart-lang/markdown#130 from srawlins/cancel-typing-when-user-types

Example: cancel typing when user types
diff --git a/pkgs/markdown/example/app.dart b/pkgs/markdown/example/app.dart
index 9e0fd37..1455dc6 100644
--- a/pkgs/markdown/example/app.dart
+++ b/pkgs/markdown/example/app.dart
@@ -23,6 +23,7 @@
       savedMarkdown.isNotEmpty &&
       savedMarkdown != introText) {
     markdownInput.value = savedMarkdown;
+    markdownInput.focus();
     _renderMarkdown();
   } else {
     _typeItOut(introText, 82);
@@ -40,6 +41,10 @@
 }
 
 void _typeItOut(String msg, int pos) {
+  Timer timer;
+  markdownInput.onKeyUp.listen((_) {
+    timer?.cancel();
+  });
   addCharacter() {
     if (pos > msg.length) {
       return;
@@ -48,10 +53,10 @@
     markdownInput.focus();
     _renderMarkdown();
     pos++;
-    new Timer(typing, addCharacter);
+    timer = new Timer(typing, addCharacter);
   }
 
-  new Timer(typing, addCharacter);
+  timer = new Timer(typing, addCharacter);
 }
 
 class NullTreeSanitizer implements NodeTreeSanitizer {