diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-19 11:45:08 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-19 11:45:08 +0000 |
commit | ed179c4f50d0146345d0118c20e84ff64da1e0ec (patch) | |
tree | 387addca5839ea4604d9abcd6379248268ed5d27 /ui | |
parent | f6841b937e68a62b022bc8751478ec3602cacf7a (diff) | |
download | chromium_src-ed179c4f50d0146345d0118c20e84ff64da1e0ec.zip chromium_src-ed179c4f50d0146345d0118c20e84ff64da1e0ec.tar.gz chromium_src-ed179c4f50d0146345d0118c20e84ff64da1e0ec.tar.bz2 |
Fix first time switching from classic to GTK theme.
Make sure Widget observes the correct NativeTheme. Wait until everything else is done initializing so GetNativeTheme() returns the right thing.
BUG=384492
Review URL: https://codereview.chromium.org/330873003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278334 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r-- | ui/views/widget/widget.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc index c8b8239..fdcb32a 100644 --- a/ui/views/widget/widget.cc +++ b/ui/views/widget/widget.cc @@ -356,7 +356,6 @@ void Widget::Init(const InitParams& in_params) { internal::NativeWidgetPrivate::IsMouseButtonDown(); } native_widget_->InitNativeWidget(params); - observer_manager_.Add(GetNativeTheme()); if (RequiresNonClientView(params.type)) { non_client_view_ = new NonClientView; non_client_view_->SetFrameView(CreateNonClientFrameView()); @@ -378,6 +377,9 @@ void Widget::Init(const InitParams& in_params) { SetContentsView(params.delegate->GetContentsView()); SetInitialBoundsForFramelessWindow(params.bounds); } + // This must come after SetContentsView() or it might not be able to find + // the correct NativeTheme (on Linux). See http://crbug.com/384492 + observer_manager_.Add(GetNativeTheme()); native_widget_initialized_ = true; } |