*/}}
Browse Source

Get rid of wrong row animation

YimingWu 3 weeks ago
parent
commit
f6dbcb10cb
1 changed files with 9 additions and 7 deletions
  1. 9 7
      la_kernel.c

+ 9 - 7
la_kernel.c

@@ -5370,6 +5370,7 @@ STRUCTURE(laRowNode){
     int GotW, LP, RP, H;
     int Expand;
     int UseLast;
+    int WaitAnimation;
 };
 int la_InitRowNode(laRowInfo* ri, laUiItem* ui, laBoxedTheme* bt){
     ri->MaxW = ui->TR-ui->TL;//row node does not use margin
@@ -5379,13 +5380,14 @@ int la_InitRowNode(laRowInfo* ri, laUiItem* ui, laBoxedTheme* bt){
     ri->U=ui->TU; ri->L=ui->TL;
     ri->MaxB=ui->TU;
 }
-void la_AddRowNode(laRowInfo* ri, laUiItem* ui, laBoxedTheme* bt, int H){
+void la_AddRowNode(laRowInfo* ri, laUiItem* ui, laBoxedTheme* bt, int H, int WaitAnimation){
     laRowNode* rn=CreateNew(laRowNode);
     rn->LP=bt->LP;rn->RP=bt->RP;
     rn->GotW = (ui->Type->GetMinWidth?ui->Type->GetMinWidth(ui):(LA_RH));
     rn->ui=ui;
     rn->H=H;
     rn->Expand=ui->Expand;
+    rn->WaitAnimation=WaitAnimation;
     lstAppendItem(&ri->Elements, rn);
     if(ri->LastNoHeight){ ri->LastNoHeight=0; rn->UseLast=1; return; }
     if(ui->Flags&LA_UI_FLAGS_UNDERNEATH){ ri->LastNoHeight=1; };
@@ -5408,7 +5410,7 @@ int la_ShrinkableRowElements(laRowInfo* ri){
     return count;
 }
 void la_RecordSocketRuntimePosition(laUiItem* ui);
-int la_CalculateRowExpand(laRowInfo* ri, laUiItem* ui_end, int WaitAnimation){
+int la_CalculateRowExpand(laRowInfo* ri, laUiItem* ui_end){
     int Available=ri->MaxW-ri->NonExpandW-ri->TotalPadding;
     int ShareCount=0, Additional=0, AdditionalRemaining=0, Shrinkable=0; real NodeAddFraction=0;
     if(Available<0){
@@ -5447,7 +5449,7 @@ int la_CalculateRowExpand(laRowInfo* ri, laUiItem* ui_end, int WaitAnimation){
         ui->TR = ui->TL + Node+NodeAdd;
         ui->TB = ui->TU + rn->H;
         L=ui->TR+rn->RP;
-        if (!WaitAnimation){
+        if (!rn->WaitAnimation){
             ui->L = ui->TL; ui->R = ui->TR;
             ui->U = ui->TU; ui->B = ui->TB;
         }
@@ -5575,7 +5577,7 @@ int la_UpdateUiListRecursive(laUiList *uil, int U, int L, int R, int B, int Fast
                 la_CalcUiItemInfluence(&uil->Columns, ui);
             }else{
                 H = ui->Type->GetHeight ? ui->Type->GetHeight(ui) : 1;
-                la_AddRowNode(&ri, ui, bt, H*LA_RH);
+                la_AddRowNode(&ri, ui, bt, H*LA_RH,WaitAnimation);
             }
             if (ui->State == LA_UI_NORMAL){
                 cued->IsTrue = 0;
@@ -5605,7 +5607,7 @@ int la_UpdateUiListRecursive(laUiList *uil, int U, int L, int R, int B, int Fast
             }else{
                 ui->Flags|=LA_UI_FLAGS_TRANSPOSE;
                 H = ui->Type->GetHeight ? ui->Type->GetHeight(ui) : 1;
-                la_AddRowNode(&ri, ui, bt, H*LA_RH);
+                la_AddRowNode(&ri, ui, bt, H*LA_RH,WaitAnimation);
             }
             ui = ui->Item.pNext; continue;
         }
@@ -5617,7 +5619,7 @@ int la_UpdateUiListRecursive(laUiList *uil, int U, int L, int R, int B, int Fast
         }
 
         if (ui->Type == &_LA_UI_ROW_END){
-            la_CalculateRowExpand(&ri, ui, WaitAnimation);
+            la_CalculateRowExpand(&ri, ui);
             la_CalcUiItemInfluence(&uil->Columns, ui);
             RowMode=0; ui=ui->Item.pNext; continue;
         }
@@ -5852,7 +5854,7 @@ int la_UpdateUiListRecursive(laUiList *uil, int U, int L, int R, int B, int Fast
         if(!RowMode){
             if(!NoHeight) la_CalcUiItemInfluence(&uil->Columns, ui);
         }else{
-            la_AddRowNode(&ri, ui, bt, H);
+            la_AddRowNode(&ri, ui, bt, H, WaitAnimation);
         }
 
         if (!WaitAnimation){ ui->L = ui->TL; ui->R = ui->TR; ui->U = ui->TU; ui->B = ui->TB; }