summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgroud <gilles.roudiere@gmail.com>2019-01-18 19:30:45 +0100
committergroud <gilles.roudiere@gmail.com>2019-01-18 19:30:45 +0100
commit056ea997e5c4d2150b02a2bb59ea505b697607a1 (patch)
treee3efbbfbbf7d2761b18ae1759acf66ce59dae43f
parentd8b702b5660ee4c8a072ecde0c7d6a85bf8f7337 (diff)
Displays the pivot all the time and rotate the icon
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index 86d6799b19..02f6263887 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -2738,8 +2738,14 @@ void CanvasItemEditor::_draw_selection() {
if (single && (tool == TOOL_SELECT || tool == TOOL_MOVE || tool == TOOL_SCALE || tool == TOOL_ROTATE || tool == TOOL_EDIT_PIVOT)) { //kind of sucks
// Draw the pivot
- if (canvas_item->_edit_get_pivot() != Vector2() || drag_type == DRAG_PIVOT || tool == TOOL_EDIT_PIVOT) { // This is not really clean :/
- viewport->draw_texture(pivot_icon, (xform.xform(canvas_item->_edit_get_pivot()) - (pivot_icon->get_size() / 2)).floor());
+ if (canvas_item->_edit_use_pivot()) {
+
+ // Draw the node's pivot
+ Transform2D unscaled_transform = (xform * canvas_item->get_transform().affine_inverse() * Transform2D(canvas_item->_edit_get_rotation(), canvas_item->_edit_get_position())).orthonormalized();
+ Transform2D simple_xform = viewport->get_transform() * unscaled_transform;
+ viewport->draw_set_transform_matrix(simple_xform);
+ viewport->draw_texture(pivot_icon, canvas_item->_edit_get_pivot() - (pivot_icon->get_size() / 2).floor());
+ viewport->draw_set_transform_matrix(viewport->get_transform());
}
// Draw control-related helpers