diff options
author | Juan Linietsky <reduzio@gmail.com> | 2015-01-03 23:27:11 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2015-01-03 23:27:11 -0300 |
commit | f39473ae7adf11e16b2a7aae2f84764a3225752b (patch) | |
tree | 96bfa46ad24a5d53f5d98a2dbf0ef2a9fd01ae86 /scene/gui | |
parent | dc7ac86b798f40e1472871391af49a562879eadc (diff) |
-Obscure bug in popups solved, fixes #1008
Diffstat (limited to 'scene/gui')
-rw-r--r-- | scene/gui/popup.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/scene/gui/popup.cpp b/scene/gui/popup.cpp index 65ad02723c..bccd05d4fe 100644 --- a/scene/gui/popup.cpp +++ b/scene/gui/popup.cpp @@ -51,11 +51,18 @@ void Popup::_fix_size() { Control *window = get_window(); ERR_FAIL_COND(!window); - + +#if 0 Point2 pos = get_pos(); Size2 size = get_size(); Point2 window_size = window==this ? get_parent_area_size() :window->get_size(); +#else + + Point2 pos = get_global_pos(); + Size2 size = get_size(); + Point2 window_size = get_viewport_rect().size; +#endif if (pos.x+size.width > window_size.width) pos.x=window_size.width-size.width; if (pos.x<0) @@ -65,8 +72,14 @@ void Popup::_fix_size() { pos.y=window_size.height-size.height; if (pos.y<0) pos.y=0; +#if 0 if (pos!=get_pos()) set_pos(pos); +#else + if (pos!=get_pos()) + set_global_pos(pos); + +#endif } |