| Index: ui/views/widget/widget.cc
|
| diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc
|
| index 6063a224684cb38ec980a29621197060167065c1..7e9fdb64bb125b795fab8b11f00478828d40a9cd 100644
|
| --- a/ui/views/widget/widget.cc
|
| +++ b/ui/views/widget/widget.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "ui/views/widget/widget.h"
|
|
|
| +#include "base/auto_reset.h"
|
| #include "base/logging.h"
|
| #include "base/macros.h"
|
| #include "base/message_loop/message_loop.h"
|
| @@ -174,7 +175,8 @@ Widget::Widget()
|
| auto_release_capture_(true),
|
| views_with_layers_dirty_(false),
|
| movement_disabled_(false),
|
| - observer_manager_(this) {}
|
| + observer_manager_(this),
|
| + processing_theme_changed_(false) {}
|
|
|
| Widget::~Widget() {
|
| DestroyRootView();
|
| @@ -898,6 +900,8 @@ void Widget::DebugToggleFrameType() {
|
| }
|
|
|
| void Widget::FrameTypeChanged() {
|
| + if (processing_theme_changed_)
|
| + return;
|
| native_widget_->FrameTypeChanged();
|
| }
|
|
|
| @@ -1401,6 +1405,10 @@ void Widget::OnNativeThemeUpdated(ui::NativeTheme* observed_theme) {
|
| observer_manager_.Add(current_native_theme);
|
| }
|
|
|
| + DCHECK_EQ(processing_theme_changed_, false);
|
| +
|
| + base::AutoReset<bool> auto_theme_changed_recursion_break(
|
| + &processing_theme_changed_, true);
|
| root_view_->PropagateNativeThemeChanged(current_native_theme);
|
| }
|
|
|
|
|