From f4a318ee2d868d6d4f712afa8de786bba9703e36 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 10 Jul 2021 01:36:55 +0200 Subject: [PATCH] LibGUI: Only repaint grabbable part of Splitter when hovered/unhovered Before this change, we would repaint the Splitter and all of its split children when hovering over it. Now we only repaint the grabbable part. --- Userland/Libraries/LibGUI/Splitter.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Userland/Libraries/LibGUI/Splitter.cpp b/Userland/Libraries/LibGUI/Splitter.cpp index c0d2110278..74e9074f0f 100644 --- a/Userland/Libraries/LibGUI/Splitter.cpp +++ b/Userland/Libraries/LibGUI/Splitter.cpp @@ -74,13 +74,18 @@ void Splitter::resize_event(ResizeEvent& event) void Splitter::set_hovered_grabbable(Grabbable* grabbable) { - if (m_hovered_index.has_value() && grabbable && grabbable->index == m_hovered_index.value()) - return; - if (grabbable) + if (m_hovered_index.has_value()) { + if (grabbable && grabbable->index == m_hovered_index.value()) + return; + update(m_grabbables[m_hovered_index.value()].paint_rect); + } + + if (grabbable) { m_hovered_index = grabbable->index; - else + update(grabbable->paint_rect); + } else { m_hovered_index = {}; - update(); + } } void Splitter::override_cursor(bool do_override)