Explorar o código

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 %!s(int64=4) %!d(string=hai) anos
pai
achega
31a2f10927
Modificáronse 1 ficheiros con 4 adicións e 1 borrados
  1. 4 1
      Userland/Libraries/LibGfx/ClassicWindowTheme.h

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

@@ -47,7 +47,10 @@ private:
 
 
         bool uses_alpha() const
         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;
         }
         }
     };
     };