Skip to content

Commit c6f851a

Browse files
committed
Created needUpdateAnchorOffsets
1 parent d2b9f18 commit c6f851a

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

engine/core/component/UILayoutComponent.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ namespace Supernova{
4949
int anchorOffsetBottom = 0;
5050

5151
Vector2 positionOffset = Vector2(0, 0); // for anchors
52-
Vector2 lastAnchorPos = Vector2(0, 0); // last position computed by anchor system
5352

5453
AnchorPreset anchorPreset = AnchorPreset::NONE;
5554
bool usingAnchors = false;
@@ -63,6 +62,7 @@ namespace Supernova{
6362
bool ignoreEvents = false;
6463

6564
bool needUpdateSizes = false;
65+
bool needUpdateAnchorOffsets = false;
6666
};
6767

6868
}

engine/core/subsystem/UISystem.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1368,7 +1368,7 @@ void UISystem::update(double dt){
13681368

13691369
if (layout.usingAnchors){
13701370

1371-
if (layout.anchorPreset == AnchorPreset::NONE && (layout.needUpdateSizes || layout.lastAnchorPos != Vector2(transform.position))){
1371+
if (layout.anchorPreset == AnchorPreset::NONE && layout.needUpdateAnchorOffsets){
13721372
// Convert current manual transform/size back into anchor offsets
13731373
float rawPosX = transform.position.x - layout.positionOffset.x;
13741374
float rawPosY = transform.position.y - layout.positionOffset.y;
@@ -1380,6 +1380,8 @@ void UISystem::update(double dt){
13801380
layout.anchorOffsetBottom = layout.height - (abAnchorBottom - abAnchorTop) + layout.anchorOffsetTop;
13811381
}
13821382

1383+
layout.needUpdateAnchorOffsets = false;
1384+
13831385
float posX = abAnchorLeft + layout.anchorOffsetLeft;
13841386
float posY = abAnchorTop + layout.anchorOffsetTop;
13851387

@@ -1406,8 +1408,6 @@ void UISystem::update(double dt){
14061408
transform.needUpdate = true;
14071409
}
14081410

1409-
layout.lastAnchorPos = Vector2(transform.position.x, transform.position.y);
1410-
14111411
}else{
14121412
layout.anchorOffsetLeft = transform.position.x - abAnchorLeft;
14131413
layout.anchorOffsetTop = transform.position.y - abAnchorTop;

0 commit comments

Comments
 (0)