*/}}
Browse Source

Windows fixes

YimingWu 2 months ago
parent
commit
92fd5b8072
2 changed files with 9 additions and 8 deletions
  1. 8 7
      la_kernel.c
  2. 1 1
      resources/la_operators.c

+ 8 - 7
la_kernel.c

@@ -914,8 +914,8 @@ void laShowProgress(real p1, real p2){
 #endif
 #ifdef _WIN32
             int w=GetSystemMetrics(SM_CXFULLSCREEN), h=GetSystemMetrics(SM_CYFULLSCREEN);
-            SetWindowPos(MAIN.Progress.w, MAIN.CurrentWindow->win,w/2-ww/2,h/2-LA_RH*2/2,ww,LA_RH*2,0);
-            ShowWindow(MAIN.Progress.w,SW_SHOW);
+            SetWindowPos(MAIN.Progress.w, MAIN.CurrentWindow->win,w/2-ww/2,h/2-LA_RH*2/2,ww,LA_RH*2, SWP_ASYNCWINDOWPOS);
+            ShowWindowAsync(MAIN.Progress.w,SW_SHOW);
 #endif
             MAIN.Progress.Shown = 1;
         }
@@ -976,7 +976,7 @@ void laHideProgress(){
     XUnmapWindow(MAIN.dpy,MAIN.Progress.w); XSync(MAIN.dpy, 1); XFlush(MAIN.dpy);
 #endif
 #ifdef _WIN32
-    ShowWindow(MAIN.Progress.w,SW_HIDE);
+    ShowWindowAsync(MAIN.Progress.w,SW_HIDE);
     if(MAIN.CurrentWindow) UpdateWindow(MAIN.CurrentWindow->win);
 #endif
 #ifdef LAGUI_ANDROID
@@ -7422,7 +7422,7 @@ void *la_DestroyOperator(laOperator **a, laListHandle *Operators, int OnlyThisOn
         MAIN.CurrentPanel = (*a)->OperatorPanel;
         laDestroySinglePanel((*a)->OperatorPanel,0);
     }
-    if ((*a)->CreatedThis){ la_FreePropStepCache((*a)->CreatedThis); memFree((*a)->CreatedThis); }
+    if ((*a)->CreatedThis){ la_FreePropStepCache((*a)->CreatedThis->Go); memFree((*a)->CreatedThis); }
 
     if ((*a)->ExtraInstructionsP) strDestroyStringSplitor(&(*a)->ExtraInstructionsP);
 
@@ -7535,16 +7535,17 @@ int laInvokeP(laOperator *From, laOperatorType *at, laEvent *e, laPropPack *This
         laConfirmSameDataIfAny(a); la_DestroyConfirmData(&MAIN.InvokeConfirmData); MAIN.InvokeConfirmData=a->NextConfirmData;
     }
 
+    la_EnsureLocalizedEvent(a, From, e);
+
     if (!a->StopNow && (rev&LA_BLOCK || rev&LA_PASS_ON)){
         if(a->ModalOver){ lstPushItem(&MAIN.CurrentWindow->PendingOperators, a); }
         else{ lstAppendItem(&MAIN.CurrentWindow->PendingOperators, a); }
         a->State = rev;
         a->PP.EndInstance = a->CustomData;
         if (a->PP.LastPs) a->PP.LastPs->Type = U'.';
-    }else
+    } else {
         la_DestroyOperator(&a, 0, 0);
-    
-    la_EnsureLocalizedEvent(a,From,e);
+    }
 
     return rev;
 }

+ 1 - 1
resources/la_operators.c

@@ -538,7 +538,7 @@ void *laget_FileBrowserActiveFile(laFileBrowser *fb){
 }
 void laget_FileBrowserDiskID(laDiskItem *di, char *result, char** move){
 #ifdef _WIN32
-    result[0] = di->ID;
+    result[0] = di->Path[0];
     result[1] = U':';
     result[2] = LA_PATH_SEP;
     result[3] = U'\0';