sprite selection rectangle updates again (fixes issue 10936)
sprite selection rectangle was not updating in real time when dragging or rotating sprites; undoing translation/rotation changes did not update sprite rectangles either.
This commit is contained in:
parent
647a914155
commit
9ba92f5baa
|
@ -2301,19 +2301,24 @@ void CanvasItemEditor::_notification(int p_what) {
|
||||||
Rect2 r = canvas_item->get_item_rect();
|
Rect2 r = canvas_item->get_item_rect();
|
||||||
Transform2D xform = canvas_item->get_transform();
|
Transform2D xform = canvas_item->get_transform();
|
||||||
|
|
||||||
|
if (r != se->prev_rect || xform != se->prev_xform) {
|
||||||
|
viewport->update();
|
||||||
|
se->prev_rect = r;
|
||||||
|
se->prev_xform = xform;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Object::cast_to<Control>(canvas_item)) {
|
||||||
float anchors[4];
|
float anchors[4];
|
||||||
Vector2 pivot;
|
Vector2 pivot;
|
||||||
if (Object::cast_to<Control>(canvas_item)) {
|
|
||||||
pivot = Object::cast_to<Control>(canvas_item)->get_pivot_offset();
|
pivot = Object::cast_to<Control>(canvas_item)->get_pivot_offset();
|
||||||
anchors[MARGIN_LEFT] = Object::cast_to<Control>(canvas_item)->get_anchor(MARGIN_LEFT);
|
anchors[MARGIN_LEFT] = Object::cast_to<Control>(canvas_item)->get_anchor(MARGIN_LEFT);
|
||||||
anchors[MARGIN_RIGHT] = Object::cast_to<Control>(canvas_item)->get_anchor(MARGIN_RIGHT);
|
anchors[MARGIN_RIGHT] = Object::cast_to<Control>(canvas_item)->get_anchor(MARGIN_RIGHT);
|
||||||
anchors[MARGIN_TOP] = Object::cast_to<Control>(canvas_item)->get_anchor(MARGIN_TOP);
|
anchors[MARGIN_TOP] = Object::cast_to<Control>(canvas_item)->get_anchor(MARGIN_TOP);
|
||||||
anchors[MARGIN_BOTTOM] = Object::cast_to<Control>(canvas_item)->get_anchor(MARGIN_BOTTOM);
|
anchors[MARGIN_BOTTOM] = Object::cast_to<Control>(canvas_item)->get_anchor(MARGIN_BOTTOM);
|
||||||
|
|
||||||
if (r != se->prev_rect || xform != se->prev_xform || pivot != se->prev_pivot || anchors[MARGIN_LEFT] != se->prev_anchors[MARGIN_LEFT] || anchors[MARGIN_RIGHT] != se->prev_anchors[MARGIN_RIGHT] || anchors[MARGIN_TOP] != se->prev_anchors[MARGIN_TOP] || anchors[MARGIN_BOTTOM] != se->prev_anchors[MARGIN_BOTTOM]) {
|
if (pivot != se->prev_pivot || anchors[MARGIN_LEFT] != se->prev_anchors[MARGIN_LEFT] || anchors[MARGIN_RIGHT] != se->prev_anchors[MARGIN_RIGHT] || anchors[MARGIN_TOP] != se->prev_anchors[MARGIN_TOP] || anchors[MARGIN_BOTTOM] != se->prev_anchors[MARGIN_BOTTOM]) {
|
||||||
viewport->update();
|
viewport->update();
|
||||||
se->prev_rect = r;
|
|
||||||
se->prev_xform = xform;
|
|
||||||
se->prev_pivot = pivot;
|
se->prev_pivot = pivot;
|
||||||
se->prev_anchors[MARGIN_LEFT] = anchors[MARGIN_LEFT];
|
se->prev_anchors[MARGIN_LEFT] = anchors[MARGIN_LEFT];
|
||||||
se->prev_anchors[MARGIN_RIGHT] = anchors[MARGIN_RIGHT];
|
se->prev_anchors[MARGIN_RIGHT] = anchors[MARGIN_RIGHT];
|
||||||
|
|
Loading…
Reference in New Issue