diff options
author | Bastien Bouclet | 2018-01-06 14:40:02 +0100 |
---|---|---|
committer | Bastien Bouclet | 2018-01-27 18:12:34 +0100 |
commit | 0496ede62f8b86e1885d594e3aa5320c96b708eb (patch) | |
tree | 6a4453606061a15a5ee3462d1680936c257ae7f5 /gui/widgets/tab.cpp | |
parent | 3b50b57f544cb7c719a5f02f061853e10885ae6c (diff) | |
download | scummvm-rg350-0496ede62f8b86e1885d594e3aa5320c96b708eb.tar.gz scummvm-rg350-0496ede62f8b86e1885d594e3aa5320c96b708eb.tar.bz2 scummvm-rg350-0496ede62f8b86e1885d594e3aa5320c96b708eb.zip |
GUI: Implement dirty-checking for widget redraws
Diffstat (limited to 'gui/widgets/tab.cpp')
-rw-r--r-- | gui/widgets/tab.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/gui/widgets/tab.cpp b/gui/widgets/tab.cpp index e2e3e72db0..9b045daf51 100644 --- a/gui/widgets/tab.cpp +++ b/gui/widgets/tab.cpp @@ -154,7 +154,7 @@ void TabWidget::removeTab(int tabID) { } // Finally trigger a redraw - _boss->draw(); + _boss->markAsDirty(); } void TabWidget::setActiveTab(int tabID) { @@ -174,7 +174,7 @@ void TabWidget::setActiveTab(int tabID) { while (_lastVisibleTab < tabID) setFirstVisible(_firstVisibleTab + 1, false); - _boss->draw(); + _boss->markAsDirty(); } } @@ -246,7 +246,7 @@ void TabWidget::setFirstVisible(int tabID, bool adjustIfRoom) { computeLastVisibleTab(adjustIfRoom); - _boss->draw(); // TODO: Necessary? + _boss->markAsDirty(); // TODO: Necessary? } void TabWidget::reflowLayout() { @@ -334,6 +334,15 @@ void TabWidget::draw() { } } +void TabWidget::markAsDirty() { + Widget::markAsDirty(); + + if (_navButtonsVisible) { + _navLeft->markAsDirty(); + _navRight->markAsDirty(); + } +} + bool TabWidget::containsWidget(Widget *w) const { if (w == _navLeft || w == _navRight || _navLeft->containsWidget(w) || _navRight->containsWidget(w)) return true; |