gh-13844: Part 2 - Fixed boosts not working for linear gradients (gh-13882)

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
This commit is contained in:
mr. m
2026-05-26 22:27:54 +02:00
committed by GitHub
parent e82012ff1c
commit 7f08cf437a
27 changed files with 599 additions and 25 deletions

View File

@@ -0,0 +1,23 @@
diff --git a/widget/ScrollbarDrawing.cpp b/widget/ScrollbarDrawing.cpp
index fec73f8a8cbfbf952f1d14f1a4eb2b20f9b5aad4..375ef5654cf61e4dea102588679d2ac2060d299a 100644
--- a/widget/ScrollbarDrawing.cpp
+++ b/widget/ScrollbarDrawing.cpp
@@ -121,7 +121,7 @@ sRGBColor ScrollbarDrawing::ComputeScrollbarTrackColor(
const nsStyleUI* ui = aStyle.StyleUI();
if (ui->mScrollbarColor.IsColors()) {
return sRGBColor::FromABGR(
- ui->mScrollbarColor.AsColors().track.CalcColor(aStyle));
+ ui->mScrollbarColor.AsColors().track.CalcColor(aStyle, aFrame));
}
static constexpr sRGBColor sDefaultDarkTrackColor =
sRGBColor::FromU8(20, 20, 25, 77);
@@ -143,7 +143,8 @@ sRGBColor ScrollbarDrawing::ComputeScrollbarThumbColor(
const nsStyleUI* ui = aStyle.StyleUI();
if (ui->mScrollbarColor.IsColors()) {
return sRGBColor::FromABGR(ThemeColors::AdjustUnthemedScrollbarThumbColor(
- ui->mScrollbarColor.AsColors().thumb.CalcColor(aStyle), aElementState));
+ ui->mScrollbarColor.AsColors().thumb.CalcColor(aStyle, aFrame),
+ aElementState));
}
auto systemColor = [&] {

View File

@@ -0,0 +1,15 @@
diff --git a/widget/ScrollbarDrawingCocoa.cpp b/widget/ScrollbarDrawingCocoa.cpp
index f0dff9276f9880034c800413c4afc2400136b35a..1dd5b53bfda64e1d3b4c1870680fa1a43de0e6fb 100644
--- a/widget/ScrollbarDrawingCocoa.cpp
+++ b/widget/ScrollbarDrawingCocoa.cpp
@@ -61,8 +61,8 @@ static ScrollbarParams ComputeScrollbarParams(nsIFrame* aFrame,
if (ui->HasCustomScrollbars()) {
const auto& colors = ui->mScrollbarColor.AsColors();
params.isCustom = true;
- params.trackColor = colors.track.CalcColor(aStyle);
- params.faceColor = colors.thumb.CalcColor(aStyle);
+ params.trackColor = colors.track.CalcColor(aStyle, aFrame);
+ params.faceColor = colors.thumb.CalcColor(aStyle, aFrame);
}
return params;

View File

@@ -0,0 +1,22 @@
diff --git a/widget/ScrollbarDrawingWin11.cpp b/widget/ScrollbarDrawingWin11.cpp
index be059ca615d1e0281af64984cfc8121be2f6e305..6326c98b369d948052c3cb1df13c8cfaaa472f5c 100644
--- a/widget/ScrollbarDrawingWin11.cpp
+++ b/widget/ScrollbarDrawingWin11.cpp
@@ -78,7 +78,7 @@ sRGBColor ScrollbarDrawingWin11::ComputeScrollbarTrackColor(
const nsStyleUI* ui = aStyle.StyleUI();
if (ui->mScrollbarColor.IsColors()) {
return sRGBColor::FromABGR(
- ui->mScrollbarColor.AsColors().track.CalcColor(aStyle));
+ ui->mScrollbarColor.AsColors().track.CalcColor(aStyle, aFrame));
}
return aColors.IsDark() ? sRGBColor::FromU8(23, 23, 23, 255)
: sRGBColor::FromU8(240, 240, 240, 255);
@@ -94,7 +94,7 @@ sRGBColor ScrollbarDrawingWin11::ComputeScrollbarThumbColor(
const nscolor baseColor = [&] {
const nsStyleUI* ui = aStyle.StyleUI();
if (ui->mScrollbarColor.IsColors()) {
- return ui->mScrollbarColor.AsColors().thumb.CalcColor(aStyle);
+ return ui->mScrollbarColor.AsColors().thumb.CalcColor(aStyle, aFrame);
}
return aColors.IsDark() ? NS_RGBA(149, 149, 149, 255)
: NS_RGBA(133, 133, 133, 255);

View File

@@ -0,0 +1,13 @@
diff --git a/widget/ThemeColors.cpp b/widget/ThemeColors.cpp
index 0ac3a8cbb04258312cba20a89a23700c6fd1b49f..dfd5203c1a795fc14befa88a474f241dd16e9c8f 100644
--- a/widget/ThemeColors.cpp
+++ b/widget/ThemeColors.cpp
@@ -113,7 +113,7 @@ ThemeAccentColor::ThemeAccentColor(const ComputedStyle& aStyle,
}
MOZ_ASSERT(color.IsColor());
nscolor accentColor =
- ColorPalette::EnsureOpaque(color.AsColor().CalcColor(aStyle));
+ ColorPalette::EnsureOpaque(color.AsColor().CalcColor(aStyle, nullptr));
if (sRGBColor::FromABGR(accentColor) == mDefaultPalette->mAccent) {
return;
}