Bug 1870481 - Restore unified toolbar window looks. r=mac-reviewers,desktop-theme-reviewers,dao,spohl

By using a opaque-appearance widget (which is effectively what
appearance: -moz-dialog used to provide).

There's the question of whether we want the current vibrant titlebars,
but this restores the behavior precisely for now.

Differential Revision: https://phabricator.services.mozilla.com/D196712
This commit is contained in:
Emilio Cobos Álvarez 2023-12-18 16:19:36 +00:00
parent ddc3c1255e
commit 084cffcd52
4 changed files with 15 additions and 8 deletions

View File

@ -3,7 +3,8 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
:root {
background-color: transparent;
-moz-default-appearance: -moz-mac-unified-toolbar-window;
appearance: auto;
}
/* Places Organizer Sidebars */
@ -34,7 +35,6 @@
#placesView {
border-top: none !important;
background-color: -moz-dialog;
}
#placesView > splitter {

View File

@ -7,11 +7,8 @@
@media (-moz-platform: macos) {
:root {
background-color: transparent;
}
#mainDeck {
background-color: -moz-dialog;
-moz-default-appearance: -moz-mac-unified-toolbar-window;
appearance: auto;
}
#topBar {

View File

@ -1648,6 +1648,12 @@ pub enum Appearance {
#[parse(condition = "ParserContext::chrome_rules_enabled")]
MozMacHelpButton,
/// An appearance value for the root, so that we can get unified toolbar looks (which require a
/// transparent gecko background) without really using the whole transparency set-up which
/// otherwise loses window borders, see bug 1870481.
#[parse(condition = "ParserContext::chrome_rules_enabled")]
MozMacUnifiedToolbarWindow,
/// Windows themed window frame elements.
#[parse(condition = "ParserContext::chrome_rules_enabled")]
MozWindowButtonBox,

View File

@ -3172,6 +3172,7 @@ bool nsNativeThemeCocoa::ThemeSupportsWidget(nsPresContext* aPresContext,
case StyleAppearance::MozMacHelpButton:
case StyleAppearance::MozMacDisclosureButtonOpen:
case StyleAppearance::MozMacDisclosureButtonClosed:
case StyleAppearance::MozMacUnifiedToolbarWindow:
case StyleAppearance::Button:
case StyleAppearance::Toolbarbutton:
case StyleAppearance::Spinner:
@ -3308,7 +3309,10 @@ nsITheme::Transparency nsNativeThemeCocoa::GetWidgetTransparency(
case StyleAppearance::Tooltip:
case StyleAppearance::Toolbar:
return eTransparent;
case StyleAppearance::MozMacUnifiedToolbarWindow:
// We want these to be treated as opaque by Gecko. We ensure there's an
// appropriate OS-level clear color to make sure that's the case.
return eOpaque;
case StyleAppearance::Statusbar:
// Knowing that scrollbars and statusbars are opaque improves
// performance, because we create layers for them.