From 03acdc22118094f6474b67933e7eaf82a31a4e45 Mon Sep 17 00:00:00 2001 From: kichik Date: Mon, 8 Dec 2003 14:06:24 +0000 Subject: [PATCH] First verify fields and then, only if all are valid, call the leave function git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3262 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/InstallOptions/InstallerOptions.cpp | 20 ++++++++++++-------- Plugins/InstallOptions.dll | Bin 12288 -> 12288 bytes 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Contrib/InstallOptions/InstallerOptions.cpp b/Contrib/InstallOptions/InstallerOptions.cpp index 4f755631..52e68b42 100644 --- a/Contrib/InstallOptions/InstallerOptions.cpp +++ b/Contrib/InstallOptions/InstallerOptions.cpp @@ -673,20 +673,24 @@ BOOL CALLBACK ParentWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPara BOOL bRes; if (message == WM_NOTIFY_OUTER_NEXT && wParam == 1) { + // Don't call leave function if fields aren't valid + if (!ValidateFields()) + return 0; // Get the settings ready for the leave function verification SaveSettings(); - g_NotifyField = 0; // Reset the record of activated control + // Reset the record of activated control + g_NotifyField = 0; } bRes = CallWindowProc((long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long))lpWndProcOld,hwnd,message,wParam,lParam); if (message == WM_NOTIFY_OUTER_NEXT && !bRes) { - // if leave function didn't abort (lRes != 0 in that case) - if (wParam == NOTIFY_BYE_BYE || wParam == -1 || ValidateFields()) { - if (wParam == -1) g_is_back++; - if (wParam == NOTIFY_BYE_BYE) g_is_cancel++; - g_done++; - PostMessage(hConfigWindow,WM_CLOSE,0,0); - } + // if leave function didn't abort (bRes != 0 in that case) + if (wParam == -1) + g_is_back++; + if (wParam == NOTIFY_BYE_BYE) + g_is_cancel++; + g_done++; + PostMessage(hConfigWindow,WM_CLOSE,0,0); } return bRes; } diff --git a/Plugins/InstallOptions.dll b/Plugins/InstallOptions.dll index 3c950eebf354f85312770655ebccbce9735510d6..348a87a687afe2a072f70e8538ea55e13a3e740b 100644 GIT binary patch delta 919 zcmXYveN2^A9LLXr%Y{n>&vo86^hOsAODFK$^K$EXo^!5Da=i@ab{n)I;&cSNRyyR` zro1_zuxkxC&a_r7sx>SZ?P|dv8D*9^YgU#ulGrqPK)X3~!i+pU_tx3I`+W92f1KaW zIh~t3H}{<@-qv$I4E|q}AU|*yv;*L^3i@BUP|`p9GfXDFf#})eSqwXtz;DG_$IFn5+T2&+Q;A!-QyHbzCvt26JQT~TiMJ`Sd%7fy`OL9f zQg)BUY-sFiy-DVz?7FYD5hx%c?%ci97VH_12{pegD}J)Jev@d(f6e*vf|Sz})->_D z#d4?3EEmp#B&--v*1%n&Leb!?XjNW^Rie=ONA|O`QbwA#3j3nx;PpiNqTvh}7Go^X9xLbUy%B zib}Vt%>QZ4IxkytH$-8i#+(*C?&a`Ham4*hPPMgl)!8&HiadS3W5qye4*+G0mF-pz zS@BrM-Y-sjy5T8N<*kIji2?6^xKtGR9$9^4MoLLOu{G7JBK{iXIquU~-)#eX>~(|T<&R~&GZ zl>o5E$`^^ivMEPLmgdp?8q&B{scq1zwLxt}JEM(jMS4hoOy8(S^^5uqJ=-8gm9fRx zVZ34t8l%Qn##!T6R1Ddvh8d)+spPd!QNo+viI31>;yZ*zGs)& z4Eu{omcyOg%U5xg*YgJ6+`-#;7k`l-A1gv-JttcO2L{n2{? zn6xlaK2x5h=Buk!q*kak>L&F{@LKTiU^) md+7_bj~=Fjbci0Or|Ea}0-dB&^ai!tL$1)05KqKQWAI-rpI+1e delta 922 zcmXYveQc9O9LMkG2J2Sar%TtafuY?73zE&1dzpQn=dLRhXNblnMHb~%hOrEmOzktP z!EB@>jC3@EOH@?gpC!(>Y^EAth#PSlHKLh_pfMtZ0na8((#+u&m-A`$l5akreD9C@ z(894lUlUNwgcz|cgFlM1wls{0EhVqPeVMtE8wLL8=F#Fp09u2FJ@t}exRMeYb~AiO z%H+!ZPXh&rQpa-dhJ(Kv;iOE&9Z4zU4zq7g%HA_^vBq(K(T>#k_AO$E<8{}_KT=Lz zvSvzcbIa!n&HF^Da|UW+!Px{mg{G+Rrsz^mz-HlgU0WK)3knxwjXNiROw3yde53`k_bod=J$PPD?4tyVk9k$MZUp({x@x$Z0aKALle7 z(!MJHW4WTM(0n9MySX7x#bkLFn?(HJTLW#GMc*RK^i?V_qf|~7-DN$vxKrh~kyQX3 zu<~`rUwy;YJs&Jl6*Z_v)Q#$9b*nn0j;a&t6?LV?v=(ib)~Q|9=C!+ZO^@m^y-Po# z59wq2S^b>;yFR5Cv07Hg*0D`&J8NTmStm1C4?Dz;vEyuzy~EyTpRq641iQ$l*=_b0 zE8-6BuiI-H92J!&mBtjl0Pmo=tgCt0jq{*w~Epm;_l0{NXozzR0(`u^GFx^O_bSrJ6 nhv*UdGCf6y=rBD^zo+NvZ}d97Mdzt~N#n9ce`6$*syE=j{Rv>)