diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-09-26 19:35:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-26 19:35:58 +0200 |
commit | 73668c59aab8ad16535868f56f603d17808a575b (patch) | |
tree | 2367a7edda2e312e25e65d0de89f787e44ba1fa1 | |
parent | 84faf3954417c0ee58df79c0d2cc09309825878a (diff) | |
parent | 082f9245668384d5bad79998dee40370c2d38dce (diff) |
Merge pull request #52824 from e8newallm/52680
Updated Tabs to not update excessively
-rw-r--r-- | scene/gui/tabs.cpp | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/scene/gui/tabs.cpp b/scene/gui/tabs.cpp index 7faa9aca2c..ef34bec347 100644 --- a/scene/gui/tabs.cpp +++ b/scene/gui/tabs.cpp @@ -98,29 +98,45 @@ void Tabs::gui_input(const Ref<InputEvent> &p_event) { if (mm.is_valid()) { Point2 pos = mm->get_position(); - highlight_arrow = -1; if (buttons_visible) { Ref<Texture2D> incr = get_theme_icon(SNAME("increment")); Ref<Texture2D> decr = get_theme_icon(SNAME("decrement")); if (is_layout_rtl()) { if (pos.x < decr->get_width()) { - highlight_arrow = 1; + if (highlight_arrow != 1) { + highlight_arrow = 1; + update(); + } } else if (pos.x < incr->get_width() + decr->get_width()) { - highlight_arrow = 0; + if (highlight_arrow != 0) { + highlight_arrow = 0; + update(); + } + } else if (highlight_arrow != -1) { + highlight_arrow = -1; + update(); } } else { int limit_minus_buttons = get_size().width - incr->get_width() - decr->get_width(); if (pos.x > limit_minus_buttons + decr->get_width()) { - highlight_arrow = 1; + if (highlight_arrow != 1) { + highlight_arrow = 1; + update(); + } } else if (pos.x > limit_minus_buttons) { - highlight_arrow = 0; + if (highlight_arrow != 0) { + highlight_arrow = 0; + update(); + } + } else if (highlight_arrow != -1) { + highlight_arrow = -1; + update(); } } } _update_hover(); - update(); return; } |