Commit c9bd8336 authored by Tetsui Ohkubo's avatar Tetsui Ohkubo Committed by Commit Bot

Relayout on battery status change.

A child label of BatteryView can change their visibility and size.
Also, EnterpriseManagedView can change its visibility.
We have to explicitly call Layout() in ChildPreferredSizeChanged() &
ChildVisibilityChanged().

TEST=manual (connect/disconnect power cable while opening the tray)
BUG=none

Change-Id: Ia1c16669bcdce0740510b7c255642d7985763225
Reviewed-on: https://chromium-review.googlesource.com/959944Reviewed-by: default avatarYoshiki Iguchi <yoshiki@chromium.org>
Commit-Queue: Tetsui Ohkubo <tetsui@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543644}
parent 2161fb90
...@@ -100,6 +100,10 @@ class BatteryView : public views::View, public PowerStatus::Observer { ...@@ -100,6 +100,10 @@ class BatteryView : public views::View, public PowerStatus::Observer {
BatteryView(); BatteryView();
~BatteryView() override; ~BatteryView() override;
// views::View:
void ChildPreferredSizeChanged(views::View* child) override;
void ChildVisibilityChanged(views::View* child) override;
// PowerStatus::Observer: // PowerStatus::Observer:
void OnPowerStatusChanged() override; void OnPowerStatusChanged() override;
...@@ -142,6 +146,14 @@ BatteryView::~BatteryView() { ...@@ -142,6 +146,14 @@ BatteryView::~BatteryView() {
PowerStatus::Get()->RemoveObserver(this); PowerStatus::Get()->RemoveObserver(this);
} }
void BatteryView::ChildPreferredSizeChanged(views::View* child) {
PreferredSizeChanged();
}
void BatteryView::ChildVisibilityChanged(views::View* child) {
PreferredSizeChanged();
}
void BatteryView::OnPowerStatusChanged() { void BatteryView::OnPowerStatusChanged() {
Update(); Update();
} }
...@@ -270,4 +282,12 @@ UnifiedSystemInfoView::UnifiedSystemInfoView() ...@@ -270,4 +282,12 @@ UnifiedSystemInfoView::UnifiedSystemInfoView()
UnifiedSystemInfoView::~UnifiedSystemInfoView() = default; UnifiedSystemInfoView::~UnifiedSystemInfoView() = default;
void UnifiedSystemInfoView::ChildVisibilityChanged(views::View* child) {
Layout();
}
void UnifiedSystemInfoView::ChildPreferredSizeChanged(views::View* child) {
Layout();
}
} // namespace ash } // namespace ash
...@@ -18,6 +18,10 @@ class ASH_EXPORT UnifiedSystemInfoView : public views::View { ...@@ -18,6 +18,10 @@ class ASH_EXPORT UnifiedSystemInfoView : public views::View {
UnifiedSystemInfoView(); UnifiedSystemInfoView();
~UnifiedSystemInfoView() override; ~UnifiedSystemInfoView() override;
// views::View:
void ChildPreferredSizeChanged(views::View* child) override;
void ChildVisibilityChanged(views::View* child) override;
private: private:
FRIEND_TEST_ALL_PREFIXES(UnifiedSystemInfoViewTest, EnterpriseManagedVisible); FRIEND_TEST_ALL_PREFIXES(UnifiedSystemInfoViewTest, EnterpriseManagedVisible);
FRIEND_TEST_ALL_PREFIXES(UnifiedSystemInfoViewTest, FRIEND_TEST_ALL_PREFIXES(UnifiedSystemInfoViewTest,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment