*/}}
Browse Source

Fix panel funny resizing issue

YimingWu 2 years ago
parent
commit
44e37f529f
1 changed files with 15 additions and 12 deletions
  1. 15 12
      la_kernel.c

+ 15 - 12
la_kernel.c

@@ -1195,19 +1195,22 @@ void laEnsurePanelInBound(laPanel *p, laUiList *uil){
 
     p->H = p->TH;
 
-    if ((p->X + p->W) > cw){
-        p->X -= (p->X + p->W - cw);
-    }
-    if ((p->Y + p->H) > ch){
-        p->Y -= (p->Y + p->H - ch);
-    }
-    if (p->X < 0) p->X = 0;
-    if (p->Y < 0) p->Y = 0;
-    if ((p->X + p->W) > cw){
-        p->W -= (p->X + p->W - cw);
+    if(p->BoundUi){
+        if (p->X < 0) p->X = 0;
+        if (p->Y < 0) p->Y = 0;
+        if ((p->X + p->W) > cw){ p->W -= (p->X + p->W - cw); }
+        if ((p->Y + p->H) > ch){ p->H -= (p->Y + p->H - ch); }
+    }else{
+        if (p->X+p->W < LA_RH*5) p->X = LA_RH*5-+p->W;
+        if (p->Y < 0) p->Y = 0;
+        if (p->X > cw-LA_RH*2) p->X = cw-LA_RH*2;
+        if (p->Y > ch-LA_RH*2) p->Y = ch-LA_RH;
+        if (p->W > cw){ p->W = cw; } if (p->H > ch){ p->H = ch; }
     }
-    if ((p->Y + p->H) > ch){
-        p->H -= (p->Y + p->H - ch);
+
+    if(!p->IsMenuPanel){
+        if(p->W<LA_RH*4) p->W=LA_RH*4;
+        if(p->H<LA_RH*2) p->H=LA_RH*2;
     }
 
     if (p->ST) p->TY = p->ST;