[Containers] Fix missing colors for tabs (#34561)
* Fix wrong color ids for light-unpinned-inactive * Add override_tab_background_color to TabAccentColors We need to override tab background color for inactive tabs with accent in case it's hovered.
This commit is contained in:
@@ -41,6 +41,7 @@
|
||||
ColorIds { \
|
||||
.icon_color_id = COLOR_40(color), .icon_border_color_id = COLOR_20(color), \
|
||||
.background_color_id = COLOR_10(color), .border_color_id = 0, \
|
||||
.override_tab_background_color_id = COLOR_10(color), \
|
||||
}
|
||||
|
||||
// Yield color ids for dark-unpinned-active
|
||||
@@ -62,12 +63,13 @@
|
||||
}
|
||||
|
||||
// Yield color ids for dark-unpinned-hovered
|
||||
#define DARK_UNPINNED_HOVERED_COLOR_IDS(color) \
|
||||
ColorIds { \
|
||||
.icon_color_id = Primitive60(color), \
|
||||
.icon_border_color_id = COLOR_20(color), \
|
||||
.background_color_id = COLOR_20(color), \
|
||||
.border_color_id = COLOR_20(color), \
|
||||
#define DARK_UNPINNED_HOVERED_COLOR_IDS(color) \
|
||||
ColorIds { \
|
||||
.icon_color_id = Primitive60(color), \
|
||||
.icon_border_color_id = COLOR_20(color), \
|
||||
.background_color_id = COLOR_20(color), \
|
||||
.border_color_id = COLOR_20(color), \
|
||||
.override_tab_background_color_id = COLOR_10(color), \
|
||||
}
|
||||
|
||||
// Yield color ids for light-pinned-active
|
||||
@@ -91,6 +93,7 @@
|
||||
ColorIds { \
|
||||
.icon_color_id = COLOR_40(color), .icon_border_color_id = COLOR_20(color), \
|
||||
.background_color_id = COLOR_10(color), .border_color_id = 0, \
|
||||
.override_tab_background_color_id = COLOR_10(color), \
|
||||
}
|
||||
|
||||
// Yield color ids for light-unpinned-active
|
||||
@@ -103,20 +106,22 @@
|
||||
}
|
||||
|
||||
// Yield color ids for light-unpinned-hovered
|
||||
#define LIGHT_UNPINNED_HOVERED_COLOR_IDS(color) \
|
||||
ColorIds { \
|
||||
.icon_color_id = Primitive60(color), \
|
||||
.icon_border_color_id = COLOR_20(color), \
|
||||
.background_color_id = COLOR_20(color), \
|
||||
.border_color_id = COLOR_20(color), \
|
||||
#define LIGHT_UNPINNED_HOVERED_COLOR_IDS(color) \
|
||||
ColorIds { \
|
||||
.icon_color_id = Primitive60(color), \
|
||||
.icon_border_color_id = COLOR_20(color), \
|
||||
.background_color_id = COLOR_20(color), \
|
||||
.border_color_id = COLOR_20(color), \
|
||||
.override_tab_background_color_id = COLOR_10(color), \
|
||||
}
|
||||
|
||||
// Yield color ids for light-unpinned-inactive
|
||||
#define LIGHT_UNPINNED_INACTIVE_COLOR_IDS(color) \
|
||||
ColorIds { \
|
||||
.icon_color_id = Primitive60(color), \
|
||||
.icon_border_color_id = COLOR_10(color), .background_color_id = 0, \
|
||||
.border_color_id = COLOR_10(color), \
|
||||
#define LIGHT_UNPINNED_INACTIVE_COLOR_IDS(color) \
|
||||
ColorIds { \
|
||||
.icon_color_id = Primitive60(color), \
|
||||
.icon_border_color_id = COLOR_10(color), \
|
||||
.background_color_id = COLOR_10(color), \
|
||||
.border_color_id = COLOR_10(color), \
|
||||
}
|
||||
|
||||
// [state]: active, hovered, inactive (each wrapped so one subobject)
|
||||
@@ -176,6 +181,7 @@ struct ColorIds {
|
||||
ui::ColorId icon_border_color_id = 0;
|
||||
ui::ColorId background_color_id = 0;
|
||||
ui::ColorId border_color_id = 0;
|
||||
ui::ColorId override_tab_background_color_id = 0;
|
||||
};
|
||||
|
||||
enum ColorKey {
|
||||
@@ -274,6 +280,10 @@ TabAccentColors GetTabAccentColors(const TabAccentColorsParams& params,
|
||||
ids.icon_border_color_id == 0
|
||||
? SK_ColorTRANSPARENT
|
||||
: color_provider->GetColor(ids.icon_border_color_id),
|
||||
.override_tab_background_color =
|
||||
ids.override_tab_background_color_id == 0
|
||||
? SK_ColorTRANSPARENT
|
||||
: color_provider->GetColor(ids.override_tab_background_color_id),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ struct TabAccentColors {
|
||||
SkColor background_color = 0;
|
||||
SkColor icon_color = 0;
|
||||
SkColor icon_border_color = 0;
|
||||
SkColor override_tab_background_color = 0;
|
||||
};
|
||||
|
||||
#endif // BRAVE_BROWSER_UI_VIEWS_TABS_ACCENT_COLOR_BRAVE_TAB_ACCENT_TYPES_H_
|
||||
|
||||
@@ -651,6 +651,18 @@ std::optional<SkColor> BraveVerticalTabStyle::GetTargetTabBackgroundColor(
|
||||
return gfx::kPlaceholderColor;
|
||||
}
|
||||
|
||||
// We have tab_background_color override for inactive tabs with accent in case
|
||||
// it's hovered
|
||||
if (selection_state == TabStyle::TabSelectionState::kInactive && hovered &&
|
||||
static_cast<const BraveTab*>(tab())->ShouldPaintTabAccent()) {
|
||||
auto accent_colors =
|
||||
static_cast<const BraveTab*>(tab())->GetTabAccentColors();
|
||||
if (accent_colors &&
|
||||
accent_colors->override_tab_background_color != SK_ColorTRANSPARENT) {
|
||||
return accent_colors->override_tab_background_color;
|
||||
}
|
||||
}
|
||||
|
||||
// Tab in tile doesn't have background in inactive state.
|
||||
// In split view tile, we don't have selected tab's background.
|
||||
// When any tab in a tile is clicked, the other tab in a same tile
|
||||
|
||||
Reference in New Issue
Block a user