From a0a7ca8a09da4dc691d6ef4fb50c9da03ee0c4f3 Mon Sep 17 00:00:00 2001 From: kichik Date: Wed, 16 Jul 2003 20:31:51 +0000 Subject: [PATCH] Fixed stuck up windows on Windows 98 git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2724 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/BgImage/BgImage.cpp | 28 +++++++++++++++------------- Plugins/BgImage.dll | Bin 7168 -> 7168 bytes 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/Contrib/BgImage/BgImage.cpp b/Contrib/BgImage/BgImage.cpp index 300c67c1..e18f47e9 100644 --- a/Contrib/BgImage/BgImage.cpp +++ b/Contrib/BgImage/BgImage.cpp @@ -31,7 +31,7 @@ enum { MIL_BITMAP, MIL_TRANSPARENT_BITMAP, MIL_TEXT -}; +} ObjType; struct myImageList { BYTE iType; @@ -298,8 +298,6 @@ NSISFunc(Redraw) { NSISFunc(Clear) { ECS(); - BOOL bIsFirst = TRUE; - myImageList *img = &bgBitmap; while (img) { switch (img->iType) { @@ -315,21 +313,21 @@ NSISFunc(Clear) { myImageList *thisImg = img; img = img->next; + thisImg->next = NULL; - if (!bIsFirst) + if (thisImg != &bgBitmap) GlobalFree(thisImg); - else - bIsFirst = FALSE; } - bgBitmap.next = 0; bgBitmap.bReady = FALSE; LCS(); } NSISFunc(Destroy) { - SetWindowLong(hWndParent, GWL_WNDPROC, (long)oldProc); + bgBitmap.bReady = FALSE; + if (IsWindow(hwndParent)) + SetWindowLong(hwndParent, GWL_WNDPROC, (long)oldProc); SendMessage(hWndImage, WM_CLOSE, 0, 0); hWndImage = 0; Clear(0, 0, 0, 0); @@ -342,7 +340,8 @@ NSISFunc(Sound) { char szStop[] = {'/', 'S', 'T', 'O', 'P', 0}; DWORD flags = SND_FILENAME | SND_NODEFAULT; - g_stacktop=stacktop; + + g_stacktop = stacktop; popstring(szTemp); if (lstrcmpi(szTemp, szWait)) flags |= SND_ASYNC; @@ -356,12 +355,14 @@ NSISFunc(Sound) { } LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { - if (hwnd == hWndParent) { + HWND hwndParent = hWndParent; + + if (hwnd == hwndParent) { if (message == WM_SIZE) { ShowWindow(hWndImage, wParam == SIZE_MINIMIZED ? SW_HIDE : SW_SHOW); } if (message == WM_WINDOWPOSCHANGED) { - SetWindowPos(hWndImage, hWndParent, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE); + SetWindowPos(hWndImage, hwndParent, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE); } return CallWindowProc( (long (__stdcall *)(HWND,unsigned int,unsigned int,long))oldProc, @@ -534,12 +535,13 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) } break; case WM_WINDOWPOSCHANGING: + if (IsWindow(hwndParent)) { LPWINDOWPOS wp = (LPWINDOWPOS) lParam; wp->flags |= SWP_NOACTIVATE; - wp->hwndInsertAfter = hWndParent; - break; + wp->hwndInsertAfter = hwndParent; } + break; case WM_CLOSE: DestroyWindow(hwnd); break; diff --git a/Plugins/BgImage.dll b/Plugins/BgImage.dll index 3afaf519a06e52da3aaf1316393d75f53c725acd..b958360dd771987799ff98ed3b0741faa12f5aaf 100644 GIT binary patch delta 1745 zcmc(ge{54#6vyu^Z{1s0TxEMuVKprqKjc@c4v~$DF zqFu?#vu5Q^@dr_Ug&<%glz&8o1{R$V85u^1LI_028#aVLaQxWf^}NF3{`U`W@_FZ- zbI-Z=-0yqs+azt0Iz6~2ImgF8{o~2gwf}Oa_9plXPj9O|3zl3Rto;G3bnR@`R<3(B zXyhi-cBZwPo145;j4vkdznFKs6rnUisGBUqC8kbH8ck)46a1uWf@N0dwdN2^=8qLyy zjoH*M7{@p(q=qfQSKP?fZ#5yb^BmlrSVH=ksdxt&WQy?~V$Ye3_mR0d#pZ)hzndXz zawfp$Z8^{9U&=#h_dzJp`^Yaj^|+PHH*aQ*MJp-SOnS{6v~=ApS&Wu66gTf=$&}nG zJe|CgJO1%jST2^1`g^hdNbT7d^W$np1j8{ zhplguo^Cu>mnQTUN;-6=r!ay&m*A8Q$XT%p+LPc_={N6Dn(%h| z1BA_YI9mLaa~lou#!D0T7WwG~nID437!TW03-b#xZYL|Ojrd6FwDpL|+j8e&H4U?r z>wv$&0(M$*blLz6Hx?pfztsr0BeD2U>@KGCIUqO0&YRUC7=grHDWNXJ+eXA zWO!_c`FT!+x<Zujn&=iiVuiR=tP$6XVXlI8d1ZSq0+xO`4#%g2<9 v<*UmlDYKOYN~KbxtX1Annv{sLT{)!ur99@D;koR&<+p3*7u`(-2kC=641KA8w4^o-P~AUGH4eF zLT9=Wx>~bwry`ok52M7OA&fu#$5BB*eq<6P8DVG*~J&yjuGapqCqouz;s6L5S`C~Y3tJl2Q zV#M}&oTZ@vz+%F|RP90~WX2Vk;;|D8z!VgodL*9eyY<@SE5!gQ^iyttM%qpa%<};H z32iWWIh0a;9v4j!o9VuTo*^^I9(s$+BK+WV({E%a_Z;Eq^IWl;^8v4Qr^2O)vhF+K zqGXT@v2d}22}|9;Cnj^WJsmp06;88ZXe7I(z6|&=hY4WsdAvJXNiT3E0EPxgYt(qRh0Gzt{XewflEt#-sdYPfJ$V4)5wH1u1 zyO&(4qLU#ee2Yu1t~-5vS>k5w=6Wp=v8m}=BP(KC9p;EL5#Xzg;23SownvSQq5g6t z-6CXFDW$`L*>>Cs{CcNW@8T{BjbYc}olOd<;19WO?^@sNuO9pyF8gNsKw^xS@w&muM^?7-C3E4`_@ z)5mzguDo8O4PC;8H2q5q)ASB}$+W~J{o}OPVtDbugx*6h=9G{I`Y@-EEEsh0*9h$- zQ=_+w0Jvg&RS`Eb8>vE;BX1xZkZs5ias(Mbb|Tj?&lsDY0jNioB0;1anT@!SJmjhe zU;;750OlM*_Mv_ldA|sv(1}6|vI<#@C`bvCk2sKf7LN00xM zmp=DX{Su@KnVkz@%>x)gyaK==+8sQA6N#eVh%xJs2(kry=J<A&Is+mBzUwtoQc Crxa)a