| Index: ui/views/widget/widget.cc
|
| diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc
|
| index 280969a84e5e7d0067d1f10378dec9d6d15061fb..71df4501d12ffa4d44c3426e4afb6e0281ad3c6e 100644
|
| --- a/ui/views/widget/widget.cc
|
| +++ b/ui/views/widget/widget.cc
|
| @@ -122,7 +122,8 @@ Widget::InitParams::InitParams()
|
| desktop_window_tree_host(NULL),
|
| layer_type(ui::LAYER_TEXTURED),
|
| context(NULL),
|
| - force_show_in_taskbar(false) {
|
| + force_show_in_taskbar(false),
|
| + theme_provider(nullptr) {
|
| }
|
|
|
| Widget::InitParams::InitParams(Type type)
|
| @@ -145,7 +146,8 @@ Widget::InitParams::InitParams(Type type)
|
| desktop_window_tree_host(NULL),
|
| layer_type(ui::LAYER_TEXTURED),
|
| context(NULL),
|
| - force_show_in_taskbar(false) {
|
| + force_show_in_taskbar(false),
|
| + theme_provider(nullptr) {
|
| }
|
|
|
| Widget::InitParams::~InitParams() {
|
| @@ -158,6 +160,7 @@ Widget::Widget()
|
| : native_widget_(NULL),
|
| widget_delegate_(NULL),
|
| non_client_view_(NULL),
|
| + theme_provider_(nullptr),
|
| dragged_view_(NULL),
|
| ownership_(InitParams::NATIVE_WIDGET_OWNS_WIDGET),
|
| is_secondary_widget_(true),
|
| @@ -351,7 +354,10 @@ void Widget::Init(const InitParams& in_params) {
|
| native_widget_ = CreateNativeWidget(params.native_widget, this)->
|
| AsNativeWidgetPrivate();
|
| root_view_.reset(CreateRootView());
|
| - default_theme_provider_.reset(new ui::DefaultThemeProvider);
|
| + if (in_params.theme_provider)
|
| + theme_provider_ = in_params.theme_provider;
|
| + else
|
| + default_theme_provider_.reset(new ui::DefaultThemeProvider);
|
| if (params.type == InitParams::TYPE_MENU) {
|
| is_mouse_button_pressed_ =
|
| internal::NativeWidgetPrivate::IsMouseButtonDown();
|
| @@ -742,6 +748,8 @@ bool Widget::IsVisible() const {
|
| }
|
|
|
| ui::ThemeProvider* Widget::GetThemeProvider() const {
|
| + if (theme_provider_)
|
| + return theme_provider_;
|
| const Widget* root_widget = GetTopLevelWidget();
|
| if (root_widget && root_widget != this) {
|
| // Attempt to get the theme provider, and fall back to the default theme
|
|
|