summaryrefslogtreecommitdiff
path: root/chromium/ui/aura/window_occlusion_tracker.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/aura/window_occlusion_tracker.h')
-rw-r--r--chromium/ui/aura/window_occlusion_tracker.h19
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);
};