mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
fix: set background color for menu bar on Windows (#37784)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
This commit is contained in:
@@ -35,12 +35,11 @@ const char MenuBar::kViewClassName[] = "ElectronMenuBar";
|
||||
MenuBar::MenuBar(NativeWindow* window, RootView* root_view)
|
||||
: background_color_(kDefaultColor), window_(window), root_view_(root_view) {
|
||||
const ui::NativeTheme* theme = root_view_->GetNativeTheme();
|
||||
RefreshColorCache(theme);
|
||||
UpdateViewColors();
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
SetBackground(views::CreateThemedSolidBackground(ui::kColorMenuBackground));
|
||||
background_color_ = GetBackground()->get_color();
|
||||
#endif
|
||||
RefreshColorCache(theme);
|
||||
UpdateViewColors();
|
||||
SetFocusBehavior(FocusBehavior::ALWAYS);
|
||||
SetLayoutManager(std::make_unique<views::BoxLayout>(
|
||||
views::BoxLayout::Orientation::kHorizontal));
|
||||
@@ -209,6 +208,14 @@ void MenuBar::ButtonPressed(size_t id, const ui::Event& event) {
|
||||
menu_delegate->AddObserver(this);
|
||||
}
|
||||
|
||||
void MenuBar::ViewHierarchyChanged(
|
||||
const views::ViewHierarchyChangedDetails& details) {
|
||||
views::AccessiblePaneView::ViewHierarchyChanged(details);
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
background_color_ = GetBackground()->get_color();
|
||||
#endif
|
||||
}
|
||||
|
||||
void MenuBar::RefreshColorCache(const ui::NativeTheme* theme) {
|
||||
if (theme) {
|
||||
#if BUILDFLAG(IS_LINUX)
|
||||
@@ -217,6 +224,8 @@ void MenuBar::RefreshColorCache(const ui::NativeTheme* theme) {
|
||||
gtk::GetFgColor("GtkMenuBar#menubar GtkMenuItem#menuitem GtkLabel");
|
||||
disabled_color_ = gtk::GetFgColor(
|
||||
"GtkMenuBar#menubar GtkMenuItem#menuitem:disabled GtkLabel");
|
||||
#elif BUILDFLAG(IS_WIN)
|
||||
background_color_ = GetBackground()->get_color();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,9 @@ class MenuBar : public views::AccessiblePaneView,
|
||||
ElectronMenuModel** menu_model,
|
||||
views::MenuButton** button);
|
||||
|
||||
void ViewHierarchyChanged(
|
||||
const views::ViewHierarchyChangedDetails& details) override;
|
||||
|
||||
private:
|
||||
// MenuDelegate::Observer:
|
||||
void OnBeforeExecuteCommand() override;
|
||||
|
||||
Reference in New Issue
Block a user