From 09339fa912dc81703ac85bb77c372afb37e1b226 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 12 Apr 2019 02:51:59 +0200 Subject: [PATCH] StylePainter: Don't paint hover frame around disabled CoolBar buttons. --- SharedGraphics/StylePainter.cpp | 5 ++++- SharedGraphics/StylePainter.h | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/SharedGraphics/StylePainter.cpp b/SharedGraphics/StylePainter.cpp index b87837ee99..5e5741d78b 100644 --- a/SharedGraphics/StylePainter.cpp +++ b/SharedGraphics/StylePainter.cpp @@ -53,7 +53,7 @@ static void paint_button_new(Painter& painter, const Rect& rect, bool pressed, b } } -void StylePainter::paint_button(Painter& painter, const Rect& rect, ButtonStyle button_style, bool pressed, bool hovered, bool checked) +void StylePainter::paint_button(Painter& painter, const Rect& rect, ButtonStyle button_style, bool pressed, bool hovered, bool checked, bool enabled) { if (button_style == ButtonStyle::Normal) return paint_button_new(painter, rect, pressed, checked, hovered); @@ -65,6 +65,9 @@ void StylePainter::paint_button(Painter& painter, const Rect& rect, ButtonStyle if (button_style == ButtonStyle::OldNormal) painter.draw_rect(rect, Color::Black); + if (button_style == ButtonStyle::CoolBar && !enabled) + return; + PainterStateSaver saver(painter); painter.translate(rect.location()); diff --git a/SharedGraphics/StylePainter.h b/SharedGraphics/StylePainter.h index 023191b077..0f22c65b8f 100644 --- a/SharedGraphics/StylePainter.h +++ b/SharedGraphics/StylePainter.h @@ -9,7 +9,7 @@ enum class FrameShape { NoFrame, Box, Container, Panel, VerticalLine, Horizontal class StylePainter { public: - static void paint_button(Painter&, const Rect&, ButtonStyle, bool pressed, bool hovered = false, bool checked = false); + static void paint_button(Painter&, const Rect&, ButtonStyle, bool pressed, bool hovered = false, bool checked = false, bool enabled = true); static void paint_surface(Painter&, const Rect&, bool paint_vertical_lines = true); static void paint_frame(Painter&, const Rect&, FrameShape, FrameShadow, int thickness, bool skip_vertical_lines = false); };