From 2887407beb9da1ac4353edb94923fd72a862beb5 Mon Sep 17 00:00:00 2001 From: kichik Date: Fri, 6 Dec 2002 15:43:35 +0000 Subject: [PATCH] No more flickering, cross your fingers for no bugs... git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@1905 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/ExDLL/exdll.h | 1 + Contrib/InstallOptions/InstallerOptions.cpp | 8 +++---- Contrib/StartMenu/StartMenu.c | 3 +-- Plugins/InstallOptions.dll | Bin 11264 -> 11264 bytes Plugins/StartMenu.dll | Bin 6656 -> 6656 bytes Source/exehead/Ui.c | 25 ++++++++++---------- 6 files changed, 18 insertions(+), 19 deletions(-) diff --git a/Contrib/ExDLL/exdll.h b/Contrib/ExDLL/exdll.h index 32c73dbb..12bd6a55 100644 --- a/Contrib/ExDLL/exdll.h +++ b/Contrib/ExDLL/exdll.h @@ -11,6 +11,7 @@ // For page showing plug-ins #define WM_NOTIFY_OUTER_NEXT (WM_USER+0x8) +#define WM_NOTIFY_CUSTOM_READY (WM_USER+0xd) #define NOTIFY_BYE_BYE 'x' typedef struct _stack_t { diff --git a/Contrib/InstallOptions/InstallerOptions.cpp b/Contrib/InstallOptions/InstallerOptions.cpp index 43fe0270..bf197a43 100644 --- a/Contrib/InstallOptions/InstallerOptions.cpp +++ b/Contrib/InstallOptions/InstallerOptions.cpp @@ -175,6 +175,7 @@ int bCancelEnabled = FALSE; // by ORTIM: 13-August-2002 int bCancelShow = FALSE; // by ORTIM: 13-August-2002 FieldType *pFields = NULL; +#define DEFAULT_RECT 1018 int nRectId = 0; int nNumFields = 0; int g_done; @@ -462,7 +463,7 @@ bool ReadSettings(void) { nNumFields = GetPrivateProfileInt("Settings", "NumFields", 0, pszFilename); - nRectId = GetPrivateProfileInt("Settings", "Rect", 1018, pszFilename); + nRectId = GetPrivateProfileInt("Settings", "Rect", DEFAULT_RECT, pszFilename); bBackEnabled = GetPrivateProfileInt("Settings", "BackEnabled", 0xFFFF0000, pszFilename); // by ORTIM: 13-August-2002 @@ -751,7 +752,7 @@ int createCfgDlg() } childwnd=FindWindowEx(hMainWindow,NULL,"#32770",NULL); // find window to replace - if (!childwnd) childwnd=GetDlgItem(hMainWindow,nRectId); + if (!childwnd || nRectId != DEFAULT_RECT) childwnd=GetDlgItem(hMainWindow,nRectId); if (!childwnd) { popstring(NULL); @@ -1003,10 +1004,9 @@ void showCfgDlg() { lpWndProcOld = (void *) SetWindowLong(hMainWindow,GWL_WNDPROC,(long)ParentWndProc); + SendMessage(hMainWindow, WM_NOTIFY_CUSTOM_READY, 0, 0); ShowWindow(hConfigWindow, SW_SHOWNA); - InvalidateRect(hConfigWindow,0,0); SetFocus(hNextButton); - LockWindowUpdate(0); g_done=0; diff --git a/Contrib/StartMenu/StartMenu.c b/Contrib/StartMenu/StartMenu.c index ecf954e2..07f4c21c 100644 --- a/Contrib/StartMenu/StartMenu.c +++ b/Contrib/StartMenu/StartMenu.c @@ -251,10 +251,9 @@ BOOL CALLBACK dlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) AddFolderFromReg(HKEY_LOCAL_MACHINE); AddFolderFromReg(HKEY_CURRENT_USER); + SendMessage(hwParent, WM_NOTIFY_CUSTOM_READY, 0, 0); ShowWindow(hwndDlg, SW_SHOWNA); - InvalidateRect(hwndDlg,0,0); SetFocus(GetDlgItem(hwParent, IDOK)); - LockWindowUpdate(0); } break; case WM_COMMAND: diff --git a/Plugins/InstallOptions.dll b/Plugins/InstallOptions.dll index 764aae3ce18c328ebd8fdcf0067b3adec4fdcc38..11c494105bc69881902c80d4f358a8b5087b5f2a 100644 GIT binary patch delta 2143 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 D!RW`^ diff --git a/Plugins/StartMenu.dll b/Plugins/StartMenu.dll index 2eacbc1fd7e85e1b25cd5efab5f101237e0ef213..ec7d9a907a9a535cd72561f6c1eac797b288b942 100644 GIT binary patch delta 1327 zcmc(fe`r%z6vxkfrfr(4eJiFbh??4nKbW94@4lzCTG6&Jq{eo37$xBoT;iL$#A|=ekw@R_Y zgE(3^UEF0(_DbAmb6KTeN+V0fb}K)!e7}d(w*KxjoYc@P^Z6vA8q3`ot8&yawpLuu znCoq~D?&LPYrLx8avw&xbYa6{QiB&Q?Zz@vE%%Y$%sjSuz(G{}v||4rwdtTH3qq=y zT10AMm1S9ho5h)|j{{9OCixiES7b|F z$+g_JIGk$=Py=dEsvR zbXyWic93lqjoDRdM|sL`Y4)COc?A*A{$!e*bUa~iGoC1Mtznx)*tH;64pomg8&3ws z71u29|1Go{m$6&yEpXt^9p%sbxStqv9bYL6O@%0&ScmVzWYWVYMS(y~jX4ExZfOp= z!>{#DIa0iyy%Fpu@QXV+-?Qe}p~*W~%k3hfVQ>}5)mKP#3!DcD@C=*=o!|jz2Xbwk zP4p#b1t&lc@Pk`m2#kQ|AQSr*059-?3Q!B`KvNNYO6_n?faNHj2MRzRkn4rVHujGT znu^%_<^oc@fIb7-C`hj-(8v=l%zxjb<-dEhSTuJxbJZ#}p9L#+ZV7$Wz3c-vKmA9r z#7o3*|1|Rue*_i*Qi;l9pXUiCE+}Qa(;N;Kj%5^Nu$DpXp7y6Ug@4Fr@cF!$FXgp- z8{f+h@Cc9cWBe5Vj-TU~cpvZQ1NX^kkM1HC|&}UqMLFbo+9C zrIXTtc)zU9J8DJ5D@IzpYQS_K#rEDUJzI$yd)L&?-bYl^eQauFCEc1=2x(m0`NCoK z;IJkG;;OOGK-9v6rfG(YZ{XPY6%9&RN5qcuZS*CPEU#L{ahRXbh?;IriER19;UwA= z&m;N+nbLXx8Q0KPaLyFe&Y@}7(8ur}TP}py^g_Bh0qehZVeR6z3n5c`8zY%>aDLh@ zo#H4`(ppOFvU|!8%8d0f5w$n9^}#pec5}`sB0_p@A0*=!>?SYD+-2#ql&0m#%hDAo zSsj)odBc-dcS{mBM~wD}euuv@t;xnCtqTEDvntPu?;LwnIqNOaDl{vaoh{T5gU(GZ zIZ`*Cn04Szh*Qp*n!m%z4&2IYI&PQQA@kdj)}=s5+;qOaUB(zTLXrhPJ_v(KuLWK> z+-(n;bHQN9ba%+w)YKGN#hMwfw+&)Y%vPMDsoblpqI9gmG2kU+HMqI~1+dQ55;70+ zU%fVc)nF6Y2K?X&&aI z_4T$t^LSUZqql!=U&p>!gpiOe7>VudZIACKM9_z#2ln-J$&=lY_SmFyI~}Wc-c$N@ zJcnT^<}G1h-vj#OLs0R3=l+_<1EXLvnh6x<=I*G1^b50vrFs-tJfdVBl@%Ye*LhX(qGm`_4o7-^^f$=^%?z= mzND|?n|UJ-^QZXJJjxS%n7_s+_-XzFzsyT7#id<0 && uMsg != WM_INITDIALOG) LockWindowUpdate(m_curwnd); - else LockWindowUpdate(0); -#endif - SetDlgItemTextFromLang(hwndDlg,IDOK,this_page->next); hwndtmp=GetDlgItem(hwndDlg,IDC_BACK); @@ -545,16 +540,17 @@ nextPage: process_string_fromtab(g_tmp+mystrlen(g_tmp),this_page->caption); my_SetWindowText(hwndDlg,g_tmp); +#ifdef NSIS_SUPPORT_CODECALLBACKS + if (ExecuteCodeSegment(this_page->prefunc,NULL) || this_page->id<0) + goto nextPage; +#endif //NSIS_SUPPORT_CODECALLBACKS + if (this_page->id!=NSIS_PAGE_COMPLETED) DestroyWindow(m_curwnd); else { if (g_autoclose) goto nextPage; return 0; } -#ifdef NSIS_SUPPORT_CODECALLBACKS - if (ExecuteCodeSegment(this_page->prefunc,NULL) || this_page->id<0) - goto nextPage; -#endif //NSIS_SUPPORT_CODECALLBACKS if (this_page->id>=0) // NSIS page { gDontFookWithFocus = 0; @@ -581,6 +577,9 @@ nextPage: } } } + if (uMsg == WM_NOTIFY_CUSTOM_READY) { + DestroyWindow(m_curwnd); + } if (uMsg == WM_CLOSE) { if (!IsWindowEnabled(m_hwndCancel) && IsWindowEnabled(m_hwndOK))