Index: chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h |
diff --git a/chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h b/chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h |
index 41d7bda92d3bbeaf8413998a0a08d201534d81ab..700b44d6a5864592aab6dd4aca1a73f233a688ea 100644 |
--- a/chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h |
+++ b/chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h |
@@ -8,14 +8,22 @@ |
#include "base/basictypes.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/singleton.h" |
+#include "base/time/time.h" |
#include "chrome/browser/chromeos/ui/accessibility_focus_ring_layer.h" |
+#include "ui/compositor/compositor_animation_observer.h" |
#include "ui/gfx/rect.h" |
+namespace ui { |
+class Compositor; |
+} |
+ |
namespace chromeos { |
// AccessibilityFocusRingController manages a custom focus ring (or multiple |
// rings) for accessibility. |
-class AccessibilityFocusRingController : public FocusRingLayerDelegate { |
+class AccessibilityFocusRingController |
+ : public FocusRingLayerDelegate, |
+ public ui::CompositorAnimationObserver { |
public: |
// Get the single instance of this class. |
static AccessibilityFocusRingController* GetInstance(); |
@@ -42,6 +50,9 @@ class AccessibilityFocusRingController : public FocusRingLayerDelegate { |
// FocusRingLayerDelegate. |
virtual void OnDeviceScaleFactorChanged() OVERRIDE; |
+ // CompositorAnimationObserver. |
+ virtual void OnAnimationStep(base::TimeTicks timestamp) OVERRIDE; |
+ |
void Update(); |
AccessibilityFocusRing RingFromSortedRects( |
@@ -54,9 +65,11 @@ class AccessibilityFocusRingController : public FocusRingLayerDelegate { |
bool Intersects(const gfx::Rect& r1, const gfx::Rect& r2) const; |
std::vector<gfx::Rect> rects_; |
+ std::vector<AccessibilityFocusRing> previous_rings_; |
std::vector<AccessibilityFocusRing> rings_; |
- scoped_ptr<AccessibilityFocusRingLayer> main_focus_ring_layer_; |
- std::vector<scoped_ptr<AccessibilityFocusRingLayer> > extra_layers_; |
+ std::vector<scoped_ptr<AccessibilityFocusRingLayer> > layers_; |
+ base::TimeTicks focus_change_time_; |
+ ui::Compositor* compositor_; |
friend struct DefaultSingletonTraits<AccessibilityFocusRingController>; |