mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 22:57:44 +00:00
LibWeb: Only paint focus outline when browser window has focus
This is communicated through the PaintContext::has_focus() flag.
This commit is contained in:
parent
c1e0047b48
commit
2614ef550c
3 changed files with 8 additions and 2 deletions
|
@ -105,6 +105,7 @@ void LayoutDocument::paint_all_phases(PaintContext& context)
|
|||
paint(context, PaintPhase::Background);
|
||||
paint(context, PaintPhase::Border);
|
||||
paint(context, PaintPhase::Foreground);
|
||||
if (context.has_focus())
|
||||
paint(context, PaintPhase::FocusOutline);
|
||||
paint(context, PaintPhase::Overlay);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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 };
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue