From 6e4c8dd34bd905b24f7e0e6a4ef868eeaf61134d Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Thu, 26 Jul 2018 17:58:48 +0200 Subject: Bypass transparency optimization with HC themes. Don't use transparency optimization for theme items in Windows 8 or later with a high contrast theme in use. See MoonchildProductions/Pale-Moon#1591 --- widget/windows/nsNativeThemeWin.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'widget/windows') diff --git a/widget/windows/nsNativeThemeWin.cpp b/widget/windows/nsNativeThemeWin.cpp index 8950dcf90..475ebce94 100644 --- a/widget/windows/nsNativeThemeWin.cpp +++ b/widget/windows/nsNativeThemeWin.cpp @@ -1360,7 +1360,10 @@ nsNativeThemeWin::GetThemePartAndState(nsIFrame* aFrame, uint8_t aWidgetType, static bool AssumeThemePartAndStateAreTransparent(int32_t aPart, int32_t aState) { - if (aPart == MENU_POPUPITEM && aState == MBI_NORMAL) { + // When using a high contrast theme on Windows 8 or later, we can't + // use this optimization. + if (!(IsWin8OrLater() && nsUXThemeData::IsHighContrastOn()) && + aPart == MENU_POPUPITEM && aState == MBI_NORMAL) { return true; } return false; -- cgit v1.2.3