summaryrefslogtreecommitdiff
path: root/scene/gui
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2016-02-08 11:29:32 -0300
committerJuan Linietsky <reduzio@gmail.com>2016-02-08 11:29:32 -0300
commit9109e41a20a202e405cefc4ca6cb54208366fee9 (patch)
tree72aeaab9e23c042a689174fee1fce38a54ee7fd9 /scene/gui
parentf5433dc60d4a2e56b64f0a581ccb82c71e0887ee (diff)
Property handle rotated controls in 2D editor, fixes #3613
Diffstat (limited to 'scene/gui')
-rw-r--r--scene/gui/control.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index c319e306e0..af3b37bec2 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -85,9 +85,14 @@ Size2 Control::edit_get_minimum_size() const {
void Control::edit_set_rect(const Rect2& p_edit_rect) {
- Rect2 new_rect=get_rect();
+ Matrix32 postxf;
+ postxf.set_rotation_and_scale(data.rotation,data.scale);
+ Vector2 new_pos = postxf.xform(p_edit_rect.pos);
+
+ Vector2 pos = get_pos()+new_pos;
- new_rect.pos+=p_edit_rect.pos.snapped(Vector2(1,1));
+ Rect2 new_rect=get_rect();
+ new_rect.pos=pos.snapped(Vector2(1,1));
new_rect.size=p_edit_rect.size.snapped(Vector2(1,1));
set_pos(new_rect.pos);