Commit 2065dfb4 authored by Thomas Lukaszewicz's avatar Thomas Lukaszewicz Committed by Commit Bot

Moved shell initialization to AddedToWidget()

Previously ShellWindowDelegateView had its initialization happen in
ViewHierarchyChanged(). This change splits initialization between the
constructor and AddedToWidget().

This allows the ShellWindowDelegateView to support being re-parented
to a Widget hierarchy multiple times.

Bug: 1083822
Change-Id: I4e0da0bcf458683bea2d327613588754c7372945
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2206218
Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Reviewed-by: default avatarMike West <mkwst@chromium.org>
Cr-Commit-Position: refs/heads/master@{#771077}
parent ee6b6034
...@@ -78,7 +78,9 @@ class ShellWindowDelegateView : public views::WidgetDelegateView, ...@@ -78,7 +78,9 @@ class ShellWindowDelegateView : public views::WidgetDelegateView,
public: public:
enum UIControl { BACK_BUTTON, FORWARD_BUTTON, STOP_BUTTON }; enum UIControl { BACK_BUTTON, FORWARD_BUTTON, STOP_BUTTON };
ShellWindowDelegateView(Shell* shell) : shell_(shell) {} explicit ShellWindowDelegateView(Shell* shell) : shell_(shell) {
InitShellWindow();
}
~ShellWindowDelegateView() override {} ~ShellWindowDelegateView() override {}
...@@ -222,10 +224,10 @@ class ShellWindowDelegateView : public views::WidgetDelegateView, ...@@ -222,10 +224,10 @@ class ShellWindowDelegateView : public views::WidgetDelegateView,
if (!Shell::ShouldHideToolbar()) if (!Shell::ShouldHideToolbar())
layout->AddPaddingRow(0, 5); layout->AddPaddingRow(0, 5);
InitAccelerators();
} }
void InitAccelerators() { void InitAccelerators() {
// This function must be called when part of the widget hierarchy.
DCHECK(GetWidget());
static const ui::KeyboardCode keys[] = {ui::VKEY_F5, ui::VKEY_BROWSER_BACK, static const ui::KeyboardCode keys[] = {ui::VKEY_F5, ui::VKEY_BROWSER_BACK,
ui::VKEY_BROWSER_FORWARD}; ui::VKEY_BROWSER_FORWARD};
for (size_t i = 0; i < base::size(keys); ++i) { for (size_t i = 0; i < base::size(keys); ++i) {
...@@ -277,12 +279,7 @@ class ShellWindowDelegateView : public views::WidgetDelegateView, ...@@ -277,12 +279,7 @@ class ShellWindowDelegateView : public views::WidgetDelegateView,
// (preferred) size. // (preferred) size.
return gfx::Size(); return gfx::Size();
} }
void ViewHierarchyChanged( void AddedToWidget() override { InitAccelerators(); }
const views::ViewHierarchyChangedDetails& details) override {
if (details.is_add && details.child == this) {
InitShellWindow();
}
}
// Overridden from AcceleratorTarget: // Overridden from AcceleratorTarget:
bool AcceleratorPressed(const ui::Accelerator& accelerator) override { bool AcceleratorPressed(const ui::Accelerator& accelerator) override {
......
...@@ -54,7 +54,9 @@ class ShellWindowDelegateView : public views::WidgetDelegateView, ...@@ -54,7 +54,9 @@ class ShellWindowDelegateView : public views::WidgetDelegateView,
public: public:
enum UIControl { BACK_BUTTON, FORWARD_BUTTON, STOP_BUTTON }; enum UIControl { BACK_BUTTON, FORWARD_BUTTON, STOP_BUTTON };
ShellWindowDelegateView(Shell* shell) : shell_(shell) {} explicit ShellWindowDelegateView(Shell* shell) : shell_(shell) {
InitShellWindow();
}
~ShellWindowDelegateView() override {} ~ShellWindowDelegateView() override {}
...@@ -194,11 +196,11 @@ class ShellWindowDelegateView : public views::WidgetDelegateView, ...@@ -194,11 +196,11 @@ class ShellWindowDelegateView : public views::WidgetDelegateView,
} }
layout->AddPaddingRow(0, 5); layout->AddPaddingRow(0, 5);
InitAccelerators();
} }
void InitAccelerators() { void InitAccelerators() {
// This function must be called when part of the widget hierarchy.
DCHECK(GetWidget());
static const ui::KeyboardCode keys[] = {ui::VKEY_F5, ui::VKEY_BROWSER_BACK, static const ui::KeyboardCode keys[] = {ui::VKEY_F5, ui::VKEY_BROWSER_BACK,
ui::VKEY_BROWSER_FORWARD}; ui::VKEY_BROWSER_FORWARD};
for (size_t i = 0; i < base::size(keys); ++i) { for (size_t i = 0; i < base::size(keys); ++i) {
...@@ -252,12 +254,7 @@ class ShellWindowDelegateView : public views::WidgetDelegateView, ...@@ -252,12 +254,7 @@ class ShellWindowDelegateView : public views::WidgetDelegateView,
// (preferred) size. // (preferred) size.
return gfx::Size(); return gfx::Size();
} }
void ViewHierarchyChanged( void AddedToWidget() override { InitAccelerators(); }
const views::ViewHierarchyChangedDetails& details) override {
if (details.is_add && details.child == this) {
InitShellWindow();
}
}
// Overridden from AcceleratorTarget: // Overridden from AcceleratorTarget:
bool AcceleratorPressed(const ui::Accelerator& accelerator) override { bool AcceleratorPressed(const ui::Accelerator& accelerator) override {
......
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