Reapply (r6718) with fix for compiler error on linux.

git-svn-id: http://skia.googlecode.com/svn/trunk@6729 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index cc06e04..716998f 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -1051,6 +1051,10 @@
         this->updateMatrix();
     }
 
+    if (fMeasureFPS) {
+        fMeasureFPS_Time = 0;
+    }
+
     if (fNClip) {
         this->INHERITED::draw(canvas);
         SkBitmap orig = capture_bitmap(canvas);
@@ -1111,6 +1115,11 @@
         magnify(canvas);
     }
 
+    if (fMeasureFPS && fMeasureFPS_Time) {
+        this->updateTitle();
+        this->postInvalDelay();
+    }
+
     // do this last
     fDevManager->publishCanvas(fDeviceType, canvas, this);
 }
@@ -1396,10 +1405,8 @@
     }
 
     // Do this after presentGL and other finishing, rather than in afterChild
-    if (fMeasureFPS && fMeasureFPS_Time) {
-        fMeasureFPS_Time = SkTime::GetMSecs() - fMeasureFPS_Time;
-        this->updateTitle();
-        this->postInvalDelay();
+    if (fMeasureFPS && fMeasureFPS_StartTime) {
+        fMeasureFPS_Time += SkTime::GetMSecs() - fMeasureFPS_StartTime;
     }
 
     //    if ((fScrollTestX | fScrollTestY) != 0)
@@ -1471,9 +1478,8 @@
     this->installDrawFilter(canvas);
 
     if (fMeasureFPS) {
-        fMeasureFPS_Time = 0;   // 0 means the child is not aware of repeat-draw
         if (SampleView::SetRepeatDraw(child, FPS_REPEAT_COUNT)) {
-            fMeasureFPS_Time = SkTime::GetMSecs();
+            fMeasureFPS_StartTime = SkTime::GetMSecs();
         }
     } else {
         (void)SampleView::SetRepeatDraw(child, 1);
@@ -1778,6 +1784,13 @@
     }
 
     switch (uni) {
+        case 'b':
+            {
+            postEventToSink(SkNEW_ARGS(SkEvent, ("PictFileView::toggleBBox")), curr_view(this));
+            this->updateTitle();
+            this->inval(NULL);
+            break;
+            }
         case 'B':
 //            gIgnoreFastBlurRect = !gIgnoreFastBlurRect;
             this->inval(NULL);