diff options
Diffstat (limited to 'chromium/ui/aura/window_occlusion_tracker.h')
-rw-r--r-- | chromium/ui/aura/window_occlusion_tracker.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/chromium/ui/aura/window_occlusion_tracker.h b/chromium/ui/aura/window_occlusion_tracker.h index 6258792f8f0..02e78322c2b 100644 --- a/chromium/ui/aura/window_occlusion_tracker.h +++ b/chromium/ui/aura/window_occlusion_tracker.h @@ -33,6 +33,7 @@ class WindowOcclusionTrackerTestApi; } class Env; +class WindowOcclusionChangeBuilder; // Notifies tracked Windows when their occlusion state change. // @@ -73,7 +74,7 @@ class AURA_EXPORT WindowOcclusionTracker : public ui::LayerAnimationObserver, // temporary until it is finished. // Note that this is intended to be used by window manager and not by mus // client process. - class AURA_EXPORT ScopedExclude : public aura::WindowObserver { + class AURA_EXPORT ScopedExclude : public WindowObserver { public: explicit ScopedExclude(Window* window); ~ScopedExclude() override; @@ -100,6 +101,14 @@ class AURA_EXPORT WindowOcclusionTracker : public ui::LayerAnimationObserver, window_has_content_callback_ = std::move(callback); } + // Set the factory to create WindowOcclusionChangeBuilder. + using OcclusionChangeBuilderFactory = + base::RepeatingCallback<std::unique_ptr<WindowOcclusionChangeBuilder>()>; + void set_occlusion_change_builder_factory( + OcclusionChangeBuilderFactory factory) { + occlusion_change_builder_factory_ = std::move(factory); + } + private: friend class test::WindowOcclusionTrackerTestApi; friend class Env; @@ -269,12 +278,13 @@ class AURA_EXPORT WindowOcclusionTracker : public ui::LayerAnimationObserver, Window* new_root) override; void OnWindowLayerRecreated(Window* window) override; - // Windows whose occlusion data is tracked. - base::flat_map<Window*, OcclusionData> tracked_windows_; // WindowTreeHostObserver void OnOcclusionStateChanged(WindowTreeHost* host, Window::OcclusionState new_state) override; + // Windows whose occlusion data is tracked. + base::flat_map<Window*, OcclusionData> tracked_windows_; + // Windows whose bounds or transform are animated. // // To reduce the overhead of the WindowOcclusionTracker, windows in this set @@ -308,6 +318,9 @@ class AURA_EXPORT WindowOcclusionTracker : public ui::LayerAnimationObserver, // Callback to be invoked for additional window has content check. WindowHasContentCallback window_has_content_callback_; + // Optional factory to create occlusion change builder. + OcclusionChangeBuilderFactory occlusion_change_builder_factory_; + DISALLOW_COPY_AND_ASSIGN(WindowOcclusionTracker); }; |