Fix bug with pruning stale nodes
This commit is contained in:
@@ -116,6 +116,8 @@ BzUI *bzUICreate() {
|
||||
ui->borderStyles = bzArrayCreate(BzUIBorderStyle, 10);
|
||||
ui->spriteStyles = bzArrayCreate(BzUISpriteStyle, 10);
|
||||
|
||||
ui->currFrame = 0;
|
||||
|
||||
// 10kb should be enough
|
||||
ui->strArena = bzStackAllocCreate(10240);
|
||||
|
||||
@@ -165,7 +167,6 @@ void bzUIBegin(BzUI *ui, i32 width, i32 height) {
|
||||
|
||||
bzStackAllocReset(&ui->strArena);
|
||||
|
||||
ui->currFrame++;
|
||||
ui->root->lastFrame = ui->currFrame;
|
||||
ui->keyIdCount = 1;
|
||||
}
|
||||
@@ -349,7 +350,7 @@ static void pruneStale(BzUI *ui, BzUINode *node) {
|
||||
BzUINode *last = NULL;
|
||||
|
||||
while (child != NULL) {
|
||||
if (child->lastFrame != node->lastFrame) {
|
||||
if (child->lastFrame != ui->currFrame) {
|
||||
BzUINode *next = child->next;
|
||||
if (child->prev)
|
||||
child->prev->next = next;
|
||||
@@ -479,6 +480,8 @@ void bzUIEnd(BzUI *ui) {
|
||||
calculatePositions(ui, ui->root, 0, 0);
|
||||
updateNodeInteraction(ui, ui->root, GetMousePosition());
|
||||
renderNode(ui, ui->root);
|
||||
|
||||
ui->currFrame++;
|
||||
}
|
||||
|
||||
BzUIKey bzUIGetUniqueKey(BzUI *ui) {
|
||||
|
||||
Reference in New Issue
Block a user