소스 검색

LibGfx: Fix classic theme frame transparency check

We shouldn't use the title stripe or title shadow colors to determine
whether the frame itself is going to have alpha channels or not. This
caused e.g. the classic theme's window frame to be rendered as
transparency just because the stripe color had an alpha channel of 0.
Tom 4 년 전
부모
커밋
31a2f10927
1개의 변경된 파일4개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 1
      Userland/Libraries/LibGfx/ClassicWindowTheme.h

+ 4 - 1
Userland/Libraries/LibGfx/ClassicWindowTheme.h

@@ -47,7 +47,10 @@ private:
 
         bool uses_alpha() const
         {
-            return title_color.alpha() != 0xff || border_color.alpha() != 0xff || border_color2.alpha() != 0xff || title_stripes_color.alpha() != 0xff || title_shadow_color.alpha() != 0xff;
+            // We don't care about the title_stripes_color or title_shadow_color alpha channels because they are
+            // effectively rendered on top of the borders and don't mean whether the frame itself atually has
+            // any alpha channels that would require the entire frame to be rendered as transparency.
+            return title_color.alpha() != 0xff || border_color.alpha() != 0xff || border_color2.alpha() != 0xff;
         }
     };