>On Fri, 26 Oct 2007, Frank Richter wrote: > >> On 26.10.2007 16:52, Peter Åstrand wrote: >> This solves the position problem, but instead the Help button disappears. >> See screenshot >> http://www.cendio.com/~astrand/wine/62-tab-size/patched.png. Any ideas? > >Hint: check again what WM_WINDOWPOSCHANGED's 'lParam' contains ...
Thanks. I've now fixed this problem. I discovered another bug, though: The implementation does not take into account that the caller might do ShowWindow(FALSE) on the help and apply buttons. The patch below fixes this problem as well. I will file a bug. --- propsheet.c (revision 13243) +++ propsheet.c (arbetskopia) @@ -865,10 +865,12 @@ int buttonWidth, buttonHeight; PADDING_INFO padding = PROPSHEET_GetPaddingInfo(hwndParent); - if (psInfo->hasApply) + hwndButton = GetDlgItem(hwndParent, IDC_APPLY_BUTTON); + if (psInfo->hasApply && GetWindowLongW(hwndButton, GWL_STYLE) & WS_VISIBLE) num_buttons++; - if (psInfo->hasHelp) + hwndButton = GetDlgItem(hwndParent, IDHELP); + if (psInfo->hasHelp && GetWindowLongW(hwndButton, GWL_STYLE) & WS_VISIBLE) num_buttons++; /* @@ -3828,6 +3830,17 @@ return TRUE; } + case WM_WINDOWPOSCHANGED: + { + PropSheetInfo* psInfo = (PropSheetInfo*) GetPropW(hwnd, PropSheetInfoStr); + + if (!psInfo) + return FALSE; + + PROPSHEET_AdjustButtons(hwnd, psInfo); + return FALSE; + } + default: return FALSE; } Regards, --- Peter Åstrand ThinLinc Chief Developer Cendio AB http://www.cendio.se Wallenbergs gata 4 583 30 Linköping Phone: +46-13-21 46 00 ThinLinc User Group 2007 Höstkonferens --- 15-16 november, Linköping. Program och anmälan: http://www.thinlincusergroup.se/aktiviteter