*/}}
Browse Source

invoke coordinates fix

YimingWu 3 months ago
parent
commit
fd946000b4
1 changed files with 6 additions and 6 deletions
  1. 6 6
      la_kernel.c

+ 6 - 6
la_kernel.c

@@ -6824,7 +6824,7 @@ int la_RejectByUiList(laOperator* a, int x, int y){
     laListItemPointer* lip=a->LocalUiLists.pFirst;
     if(lip){ laUiList* uil=lip->p;
         if(uil->FL!=uil->FR && (x < uil->FL || y < uil->FU || x > uil->FR || y > uil->FB)){
-            //printf("rejected %d %d | %d %d %d %d\n",x,y,uil->FL,uil->FR,uil->FU,uil->FB);
+            printf("rejected %d %d | %d %d %d %d\n",x,y,uil->FL,uil->FR,uil->FU,uil->FB);
             return 1;
         }
     }
@@ -7481,12 +7481,12 @@ int laOperatorAvailableSafe(char *ID, laPropPack *This, void *Real_FromInstance,
 }
 
 void la_EnsureLocalizedEvent(laOperator *From, laOperator *a, laEvent *e){
+    if(!a){ return; }
     laOperatorType *at=a->Type;
     if (e&&!e->Localized && at->ExtraMark & LA_EXTRA_TO_PANEL){
         laWindowToLocal(0, a->ToPanel, &e->x, &e->y);
         e->Localized = 1;
     }
-
     if (e&&e->Localized){
         if (!at->ExtraMark & LA_EXTRA_TO_PANEL){
             laLocalToWindow(From, From->ToPanel, &e->x, &e->y);
@@ -7542,6 +7542,8 @@ int laInvokeP(laOperator *From, laOperatorType *at, laEvent *e, laPropPack *This
         if (a->PP.LastPs) a->PP.LastPs->Type = U'.';
     }else
         la_DestroyOperator(&a, 0, 0);
+    
+    la_EnsureLocalizedEvent(a,From,e);
 
     return rev;
 }
@@ -7585,15 +7587,14 @@ int laInvokePCreateThis(laOperator *From, laOperatorType *at, laEvent *e, laProp
     lstGeneratePointerList(f ? &f->LocalUiLists : 0, 0, &a->LocalUiLists);
 
     la_EnsureLocalizedEvent(From,a,e);
-
     if (From) f->Child = a;
-
     a->Using = 1;
 
     if (at->Init) at->Init(a);
     rev = at->Invoke(a, e);
 
     a->Using = 0;
+    la_EnsureLocalizedEvent(a,From,e);
 
     if (rev & LA_FINISH){
         a->StopNow = 1; if(From)From->Child=0;
@@ -7621,15 +7622,14 @@ int laInvokeUiP(laOperator *From, laOperatorType *at, laEvent *e, void *inst, la
     if (!IgnoreLocals) lstGeneratePointerList(f ? &f->LocalUiLists : 0, Locals, &a->LocalUiLists);
 
     la_EnsureLocalizedEvent(From,a,e);
-
     if (From) f->Child = a;
-
     a->Using = 1;
 
     if (at->Init) at->Init(a);
     rev = at->Invoke(a, e);
 
     a->Using = 0;
+    la_EnsureLocalizedEvent(a,From,e);
 
     if (rev & LA_FINISH){
         a->StopNow = 1; if(From)From->Child=0;