Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/widget.cc')
-rw-r--r--src/ui/widget.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/ui/widget.cc b/src/ui/widget.cc
index 1ecfcc8..24dfe5c 100644
--- a/src/ui/widget.cc
+++ b/src/ui/widget.cc
@@ -128,6 +128,20 @@ void Widget::show()
void Widget::hide()
{
widget_visible = false;
+ if (parent() && focus()) {
+ Widget::Children::reverse_iterator it = parent()->children().rbegin();
+
+ while (it != parent()->children().rend()) {
+ Widget *w = (*it);
+ if (w != this && w->visible()) {
+ widget_focus = false;
+ w->widget_focus = true;
+ it = parent()->children().rend();
+ } else {
+ it++;
+ }
+ }
+ }
}