Aric Stewart : comctl32: Unset active page while setting a new active page for a propsheet.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Apr 2 06:23:21 CDT 2007


Module: wine
Branch: master
Commit: 2a8463b558ab5406e696f96d04fc279cfc7f2833
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2a8463b558ab5406e696f96d04fc279cfc7f2833

Author: Aric Stewart <aric at codeweavers.com>
Date:   Fri Mar 30 11:35:12 2007 -0500

comctl32: Unset active page while setting a new active page for a propsheet.

Before calling the PSN_SETACTIVE in PROPSHEET_SetCurSel set the
active_page to -1. This prevents crashes and corruption of the
property sheet if the application makes any modifications during the
PSN_SETACTIVE.

---

 dlls/comctl32/propsheet.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/dlls/comctl32/propsheet.c b/dlls/comctl32/propsheet.c
index 636b0b2..c84f23a 100644
--- a/dlls/comctl32/propsheet.c
+++ b/dlls/comctl32/propsheet.c
@@ -2023,6 +2023,11 @@ static BOOL PROPSHEET_SetCurSel(HWND hwndDlg,
     return FALSE;
   }
 
+  /* unset active page while doing this transition. */
+  if (psInfo->active_page != -1)
+     ShowWindow(psInfo->proppage[psInfo->active_page].hwndPage, SW_HIDE);
+  psInfo->active_page = -1;
+
   while (1) {
     int result;
     PSHNOTIFY psn;




More information about the wine-cvs mailing list