diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-12-30 13:17:52 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-12-30 13:17:52 +0300 |
commit | 74f89c500d278b6ac668c313b63d0f1e76f4acaf (patch) | |
tree | fe401dc562916edfaae0c060b661ccb383be9722 /src/gui/widgets | |
parent | cf383ed98ff41b6086325b168e5f750b6f87d72e (diff) | |
download | ManaVerse-74f89c500d278b6ac668c313b63d0f1e76f4acaf.tar.gz ManaVerse-74f89c500d278b6ac668c313b63d0f1e76f4acaf.tar.bz2 ManaVerse-74f89c500d278b6ac668c313b63d0f1e76f4acaf.tar.xz ManaVerse-74f89c500d278b6ac668c313b63d0f1e76f4acaf.zip |
fix overhead text popups order. Now it drawed always below any windows.
Diffstat (limited to 'src/gui/widgets')
-rw-r--r-- | src/gui/widgets/windowcontainer.cpp | 20 | ||||
-rw-r--r-- | src/gui/widgets/windowcontainer.h | 3 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/gui/widgets/windowcontainer.cpp b/src/gui/widgets/windowcontainer.cpp index cba565cc4..d420e1183 100644 --- a/src/gui/widgets/windowcontainer.cpp +++ b/src/gui/widgets/windowcontainer.cpp @@ -58,6 +58,26 @@ void WindowContainer::adjustAfterResize(const int oldScreenWidth, } } +void WindowContainer::moveWidgetAfter(gcn::Widget *const after, + gcn::Widget *const widget) +{ + WidgetListIterator widgetIter = std::find( + mWidgets.begin(), mWidgets.end(), widget); + + if (widgetIter == mWidgets.end()) + return; + + WidgetListIterator afterIter = std::find( + mWidgets.begin(), mWidgets.end(), after); + + if (afterIter == mWidgets.end()) + return; + + ++ afterIter; + mWidgets.erase(widgetIter); + mWidgets.insert(afterIter, widget); +} + #ifdef USE_PROFILER void WindowContainer::draw(gcn::Graphics* graphics) { diff --git a/src/gui/widgets/windowcontainer.h b/src/gui/widgets/windowcontainer.h index 3645b94b6..c11d1b238 100644 --- a/src/gui/widgets/windowcontainer.h +++ b/src/gui/widgets/windowcontainer.h @@ -53,6 +53,9 @@ class WindowContainer : public Container void adjustAfterResize(const int oldScreenWidth, const int oldScreenHeight); + void moveWidgetAfter(gcn::Widget *const before, + gcn::Widget *const widget); + #ifdef USE_PROFILER void draw(gcn::Graphics* graphics); #endif |