From d404a2f0365b4ba2733f56ca126aee2927961350 Mon Sep 17 00:00:00 2001 From: Pascal Abresch Date: Thu, 8 Aug 2024 00:58:44 +0200 Subject: [PATCH] IK: ColumnListView dark mode fix Change-Id: I19c4ad3f617b6fb9db15a4e8f0a9bae459f61e97 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7934 Haiku-Format: Haiku-format Bot Reviewed-by: waddlesplash --- src/kits/interface/ColumnListView.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/kits/interface/ColumnListView.cpp b/src/kits/interface/ColumnListView.cpp index 2f31f02046..d0f5ce944b 100644 --- a/src/kits/interface/ColumnListView.cpp +++ b/src/kits/interface/ColumnListView.cpp @@ -125,6 +125,8 @@ static const unsigned char kUpSortArrow8x8Invert[] = { }; static const float kTintedLineTint = 1.04; +static const float kTintedLineTintDark = 0.90; + static const float kMinTitleHeight = 16.0; static const float kMinRowHeight = 16.0; @@ -3372,8 +3374,12 @@ OutlineView::RedrawColumn(BColumn* column, float leftEdge, bool isFirstColumn) highColor = fMasterView->Color(B_COLOR_BACKGROUND); lowColor = fMasterView->Color(B_COLOR_BACKGROUND); } - if (tintedLine) - lowColor = tint_color(lowColor, kTintedLineTint); + if (tintedLine) { + if (lowColor.IsLight()) + lowColor = tint_color(lowColor, kTintedLineTint); + else + lowColor = tint_color(lowColor, kTintedLineTintDark); + } #if DOUBLE_BUFFERED_COLUMN_RESIZE @@ -3515,8 +3521,12 @@ OutlineView::Draw(BRect invalidBounds) lowColor = fMasterView->Color(B_COLOR_NON_FOCUS_SELECTION); } else lowColor = fMasterView->Color(B_COLOR_BACKGROUND); - if (tintedLine) - lowColor = tint_color(lowColor, kTintedLineTint); + if (tintedLine) { + if (lowColor.IsLight()) + lowColor = tint_color(lowColor, kTintedLineTint); + else + lowColor = tint_color(lowColor, kTintedLineTintDark); + } for (int columnIndex = 0; columnIndex < numColumns; columnIndex++) { BColumn* column = (BColumn*) fColumns->ItemAt(columnIndex);