1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 07:57:46 +00:00

LibGUI: Add Widget::repaint() to force an immediate repaint

In most situations, Widget::update() is preferable, since that allows us
to coalesce repaints and avoid redundant work, reducing system load.

However, there are some cases where you really want a paint to happen
right away, to make sure that the user has a chance to see a short-lived
visual state.
This commit is contained in:
Andreas Kling 2021-10-23 17:53:11 +02:00
parent da86f4e384
commit 24651f854c
4 changed files with 33 additions and 0 deletions

View file

@ -136,9 +136,14 @@ public:
Gfx::IntRect rect() const { return { 0, 0, width(), height() }; }
Gfx::IntSize size() const { return m_relative_rect.size(); }
// Invalidate the widget (or an area thereof), causing a repaint to happen soon.
void update();
void update(const Gfx::IntRect&);
// Repaint the widget (or an area thereof) immediately.
void repaint();
void repaint(Gfx::IntRect const&);
bool is_focused() const;
void set_focus(bool, FocusSource = FocusSource::Programmatic);