diff options
-rw-r--r-- | Libraries/LibWeb/Layout/LayoutDocument.cpp | 3 | ||||
-rw-r--r-- | Libraries/LibWeb/PageView.cpp | 1 | ||||
-rw-r--r-- | Libraries/LibWeb/Painting/PaintContext.h | 6 |
3 files changed, 8 insertions, 2 deletions
diff --git a/Libraries/LibWeb/Layout/LayoutDocument.cpp b/Libraries/LibWeb/Layout/LayoutDocument.cpp index 90232cb7c0..541ff7ddd7 100644 --- a/Libraries/LibWeb/Layout/LayoutDocument.cpp +++ b/Libraries/LibWeb/Layout/LayoutDocument.cpp @@ -105,7 +105,8 @@ void LayoutDocument::paint_all_phases(PaintContext& context) paint(context, PaintPhase::Background); paint(context, PaintPhase::Border); paint(context, PaintPhase::Foreground); - paint(context, PaintPhase::FocusOutline); + if (context.has_focus()) + paint(context, PaintPhase::FocusOutline); paint(context, PaintPhase::Overlay); } diff --git a/Libraries/LibWeb/PageView.cpp b/Libraries/LibWeb/PageView.cpp index bb6004e3ad..3bc38f8085 100644 --- a/Libraries/LibWeb/PageView.cpp +++ b/Libraries/LibWeb/PageView.cpp @@ -273,6 +273,7 @@ void PageView::paint_event(GUI::PaintEvent& event) PaintContext context(painter, palette(), { horizontal_scrollbar().value(), vertical_scrollbar().value() }); context.set_should_show_line_box_borders(m_should_show_line_box_borders); context.set_viewport_rect(viewport_rect_in_content_coordinates()); + context.set_has_focus(is_focused()); layout_root()->paint_all_phases(context); } diff --git a/Libraries/LibWeb/Painting/PaintContext.h b/Libraries/LibWeb/Painting/PaintContext.h index 9daaa96467..530338e605 100644 --- a/Libraries/LibWeb/Painting/PaintContext.h +++ b/Libraries/LibWeb/Painting/PaintContext.h @@ -26,9 +26,9 @@ #pragma once +#include <LibGfx/Forward.h> #include <LibGfx/Palette.h> #include <LibGfx/Rect.h> -#include <LibGfx/Forward.h> namespace Web { @@ -52,12 +52,16 @@ public: const Gfx::IntPoint& scroll_offset() const { return m_scroll_offset; } + bool has_focus() const { return m_focus; } + void set_has_focus(bool focus) { m_focus = focus; } + private: Gfx::Painter& m_painter; Palette m_palette; Gfx::IntRect m_viewport_rect; Gfx::IntPoint m_scroll_offset; bool m_should_show_line_box_borders { false }; + bool m_focus { false }; }; } |