From 11b654285273cf02134b15c6dce24362f79e8d7d Mon Sep 17 00:00:00 2001 From: asava Date: Fri, 17 Apr 2020 17:50:31 +0300 Subject: [PATCH] Restrict SemiWhite pixel for dark embedded theme & allow embedded theme properties also when starting with other themes --- rEFIt_UEFI/Platform/Settings.cpp | 25 ++++++++++++------------- rEFIt_UEFI/libeg/text.cpp | 2 +- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/rEFIt_UEFI/Platform/Settings.cpp b/rEFIt_UEFI/Platform/Settings.cpp index d39658ae1..8ecb836f7 100644 --- a/rEFIt_UEFI/Platform/Settings.cpp +++ b/rEFIt_UEFI/Platform/Settings.cpp @@ -2687,19 +2687,18 @@ GetEarlyUserSettings ( break; } } - if ((AsciiStriCmp (Prop->string, "embedded") == 0) || (AsciiStriCmp (Prop->string, "") == 0)) { - Prop = GetProperty (DictPointer, "EmbeddedThemeType"); - if (Prop && (Prop->type == kTagTypeString) && Prop->string) { - if (AsciiStriCmp (Prop->string, "Dark") == 0) { - ThemeX.DarkEmbedded = TRUE; - ThemeX.Font = FONT_GRAY; - } else if (AsciiStriCmp (Prop->string, "Light") == 0) { - ThemeX.DarkEmbedded = FALSE; - ThemeX.Font = FONT_ALFA; - } else if (AsciiStriCmp (Prop->string, "DayTime") == 0) { - ThemeX.DarkEmbedded = !ThemeX.Daylight; - ThemeX.Font = ThemeX.Daylight?FONT_ALFA:FONT_GRAY; - } + // get embedded theme property even when starting with other themes, as they may be changed later + Prop = GetProperty (DictPointer, "EmbeddedThemeType"); + if (Prop && (Prop->type == kTagTypeString) && Prop->string) { + if (AsciiStriCmp (Prop->string, "Dark") == 0) { + ThemeX.DarkEmbedded = TRUE; + ThemeX.Font = FONT_GRAY; + } else if (AsciiStriCmp (Prop->string, "Light") == 0) { + ThemeX.DarkEmbedded = FALSE; + ThemeX.Font = FONT_ALFA; + } else if (AsciiStriCmp (Prop->string, "DayTime") == 0) { + ThemeX.DarkEmbedded = !ThemeX.Daylight; + ThemeX.Font = ThemeX.Daylight?FONT_ALFA:FONT_GRAY; } } } diff --git a/rEFIt_UEFI/libeg/text.cpp b/rEFIt_UEFI/libeg/text.cpp index f895c6095..e89f5c3da 100644 --- a/rEFIt_UEFI/libeg/text.cpp +++ b/rEFIt_UEFI/libeg/text.cpp @@ -159,7 +159,7 @@ void XTheme::LoadFontImage(IN BOOLEAN UseEmbedded, IN INTN Rows, IN INTN Cols) ) { PixelPtr->Reserved = 0; //if a pixel has same color as first pixel then it will be transparent //} else if (ThemeX.DarkEmbedded) { - } else if (!ThemeX.Daylight) { + } else if (ThemeX.embedded && !ThemeX.Daylight) { *PixelPtr = SemiWhitePixel; //special case to change a text to semi white, not blue pixels } FontPtr[Ypos + x] = *PixelPtr++; //not (x, YPos) !!!