Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6430)

Unified Diff: chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h

Issue 602813003: Animate the accessibility focus ring and fix some minor visual issues. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@focus_ring_in_chromevox
Patch Set: Correct upstream branch Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>;

Powered by Google App Engine
This is Rietveld 408576698