From: Jacek Caban jacek@codeweavers.com
Signed-off-by: Jacek Caban jacek@codeweavers.com --- dlls/user32/defwnd.c | 30 +++--------------------------- dlls/win32u/defwnd.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 27 deletions(-)
diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c index 047822d00d6..67cb77a3121 100644 --- a/dlls/user32/defwnd.c +++ b/dlls/user32/defwnd.c @@ -262,9 +262,6 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa case WM_NCACTIVATE: return NC_HandleNCActivate( hwnd, wParam, lParam );
- case WM_NCDESTROY: - return NtUserMessageCall( hwnd, msg, wParam, lParam, 0, NtUserDefWindowProc, FALSE ); - case WM_PRINT: DEFWND_Print(hwnd, (HDC)wParam, lParam); return 0; @@ -524,30 +521,6 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa return res; }
- case WM_GETICON: - { - HICON ret; - WND *wndPtr = WIN_GetPtr( hwnd ); - - switch(wParam) - { - case ICON_SMALL: - ret = wndPtr->hIconSmall; - break; - case ICON_BIG: - ret = wndPtr->hIcon; - break; - case ICON_SMALL2: - ret = wndPtr->hIconSmall ? wndPtr->hIconSmall : wndPtr->hIconSmall2; - break; - default: - ret = 0; - break; - } - WIN_ReleasePtr( wndPtr ); - return (LRESULT)ret; - } - case WM_HELP: SendMessageW( GetParent(hwnd), msg, wParam, lParam ); break; @@ -614,6 +587,9 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa break; }
+ default: + return NtUserMessageCall( hwnd, msg, wParam, lParam, 0, NtUserDefWindowProc, FALSE ); + }
return 0; diff --git a/dlls/win32u/defwnd.c b/dlls/win32u/defwnd.c index 1fa80928c65..3aa5a8286b3 100644 --- a/dlls/win32u/defwnd.c +++ b/dlls/win32u/defwnd.c @@ -112,6 +112,33 @@ static BOOL set_window_text( HWND hwnd, const void *text, BOOL ansi ) return TRUE; }
+static HICON get_window_icon( HWND hwnd, WPARAM type ) +{ + HICON ret; + WND *win; + + if (!(win = get_win_ptr( hwnd ))) return 0; + + switch(type) + { + case ICON_SMALL: + ret = win->hIconSmall; + break; + case ICON_BIG: + ret = win->hIcon; + break; + case ICON_SMALL2: + ret = win->hIconSmall ? win->hIconSmall : win->hIconSmall2; + break; + default: + ret = 0; + break; + } + + release_win_ptr( win ); + return ret; +} + static HICON set_window_icon( HWND hwnd, WPARAM type, HICON icon ) { HICON ret = 0; @@ -227,6 +254,10 @@ LRESULT default_window_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, result = (LRESULT)set_window_icon( hwnd, wparam, (HICON)lparam ); break;
+ case WM_GETICON: + result = (LRESULT)get_window_icon( hwnd, wparam ); + break; + case WM_SYSCOMMAND: result = handle_sys_command( hwnd, wparam, lparam ); break;
From: Jacek Caban jacek@codeweavers.com
Signed-off-by: Jacek Caban jacek@codeweavers.com --- dlls/user32/defwnd.c | 25 ------------------------- dlls/win32u/defwnd.c | 26 +++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 26 deletions(-)
diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c index 67cb77a3121..fdb100c9556 100644 --- a/dlls/user32/defwnd.c +++ b/dlls/user32/defwnd.c @@ -266,31 +266,6 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa DEFWND_Print(hwnd, (HDC)wParam, lParam); return 0;
- case WM_PAINTICON: - case WM_PAINT: - { - PAINTSTRUCT ps; - HDC hdc = NtUserBeginPaint( hwnd, &ps ); - if( hdc ) - { - HICON hIcon; - if (IsIconic(hwnd) && ((hIcon = (HICON)GetClassLongPtrW( hwnd, GCLP_HICON))) ) - { - RECT rc; - int x, y; - - GetClientRect( hwnd, &rc ); - x = (rc.right - rc.left - GetSystemMetrics(SM_CXICON))/2; - y = (rc.bottom - rc.top - GetSystemMetrics(SM_CYICON))/2; - TRACE("Painting class icon: vis rect=(%s)\n", - wine_dbgstr_rect(&ps.rcPaint)); - DrawIcon( hdc, x, y, hIcon ); - } - NtUserEndPaint( hwnd, &ps ); - } - return 0; - } - case WM_SYNCPAINT: NtUserRedrawWindow ( hwnd, NULL, 0, RDW_ERASENOW | RDW_ERASE | RDW_ALLCHILDREN ); return 0; diff --git a/dlls/win32u/defwnd.c b/dlls/win32u/defwnd.c index 3aa5a8286b3..c345a6ab188 100644 --- a/dlls/win32u/defwnd.c +++ b/dlls/win32u/defwnd.c @@ -243,7 +243,31 @@ LRESULT default_window_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, if (user_callbacks) user_callbacks->free_win_ptr( win ); win->pScroll = NULL; release_win_ptr( win ); - return 0; + break; + } + + case WM_PAINTICON: + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc = NtUserBeginPaint( hwnd, &ps ); + if (hdc) + { + HICON icon; + if (is_iconic(hwnd) && ((icon = UlongToHandle( get_class_long( hwnd, GCLP_HICON, FALSE ))))) + { + RECT rc; + int x, y; + + get_client_rect( hwnd, &rc ); + x = (rc.right - rc.left - get_system_metrics( SM_CXICON )) / 2; + y = (rc.bottom - rc.top - get_system_metrics( SM_CYICON )) / 2; + TRACE( "Painting class icon: vis rect=(%s)\n", wine_dbgstr_rect(&ps.rcPaint) ); + NtUserDrawIconEx( hdc, x, y, icon, 0, 0, 0, 0, DI_NORMAL | DI_COMPAT | DI_DEFAULTSIZE ); + } + NtUserEndPaint( hwnd, &ps ); + } + break; }
case WM_SETTEXT:
From: Jacek Caban jacek@codeweavers.com
Signed-off-by: Jacek Caban jacek@codeweavers.com --- dlls/user32/defwnd.c | 43 ------------------------------------------- dlls/win32u/defwnd.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 43 deletions(-)
diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c index fdb100c9556..af2b32614bc 100644 --- a/dlls/user32/defwnd.c +++ b/dlls/user32/defwnd.c @@ -266,46 +266,6 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa DEFWND_Print(hwnd, (HDC)wParam, lParam); return 0;
- case WM_SYNCPAINT: - NtUserRedrawWindow ( hwnd, NULL, 0, RDW_ERASENOW | RDW_ERASE | RDW_ALLCHILDREN ); - return 0; - - case WM_SETREDRAW: - if (wParam) WIN_SetStyle( hwnd, WS_VISIBLE, 0 ); - else - { - NtUserRedrawWindow( hwnd, NULL, 0, RDW_ALLCHILDREN | RDW_VALIDATE ); - WIN_SetStyle( hwnd, 0, WS_VISIBLE ); - } - return 0; - - case WM_CLOSE: - NtUserDestroyWindow( hwnd ); - return 0; - - case WM_MOUSEACTIVATE: - if (GetWindowLongW( hwnd, GWL_STYLE ) & WS_CHILD) - { - LONG ret = SendMessageW( GetParent(hwnd), WM_MOUSEACTIVATE, wParam, lParam ); - if (ret) return ret; - } - - /* Caption clicks are handled by NC_HandleNCLButtonDown() */ - return ( HIWORD(lParam) == WM_LBUTTONDOWN && LOWORD(lParam) == HTCAPTION ? MA_NOACTIVATE : MA_ACTIVATE ); - - case WM_ACTIVATE: - /* The default action in Windows is to set the keyboard focus to - * the window, if it's being activated and not minimized */ - if (LOWORD(wParam) != WA_INACTIVE) { - if (!IsIconic(hwnd)) NtUserSetFocus( hwnd ); - } - break; - - case WM_MOUSEWHEEL: - if (GetWindowLongW( hwnd, GWL_STYLE ) & WS_CHILD) - return SendMessageW( GetParent(hwnd), WM_MOUSEWHEEL, wParam, lParam ); - break; - case WM_ERASEBKGND: case WM_ICONERASEBKGND: { @@ -325,9 +285,6 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa return 1; }
- case WM_GETDLGCODE: - return 0; - case WM_CTLCOLORMSGBOX: case WM_CTLCOLOREDIT: case WM_CTLCOLORLISTBOX: diff --git a/dlls/win32u/defwnd.c b/dlls/win32u/defwnd.c index c345a6ab188..72d9aa40164 100644 --- a/dlls/win32u/defwnd.c +++ b/dlls/win32u/defwnd.c @@ -270,6 +270,49 @@ LRESULT default_window_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, break; }
+ case WM_SYNCPAINT: + NtUserRedrawWindow ( hwnd, NULL, 0, RDW_ERASENOW | RDW_ERASE | RDW_ALLCHILDREN ); + return 0; + + case WM_SETREDRAW: + if (wparam) set_window_style( hwnd, WS_VISIBLE, 0 ); + else + { + NtUserRedrawWindow( hwnd, NULL, 0, RDW_ALLCHILDREN | RDW_VALIDATE ); + set_window_style( hwnd, 0, WS_VISIBLE ); + } + return 0; + + case WM_CLOSE: + NtUserDestroyWindow( hwnd ); + return 0; + + case WM_MOUSEACTIVATE: + if (get_window_long( hwnd, GWL_STYLE ) & WS_CHILD) + { + result = send_message( get_parent(hwnd), WM_MOUSEACTIVATE, wparam, lparam ); + if (result) break; + } + + /* Caption clicks are handled by NC_HandleNCLButtonDown() */ + result = HIWORD(lparam) == WM_LBUTTONDOWN && LOWORD(lparam) == HTCAPTION ? + MA_NOACTIVATE : MA_ACTIVATE; + break; + + case WM_ACTIVATE: + /* The default action in Windows is to set the keyboard focus to + * the window, if it's being activated and not minimized */ + if (LOWORD(wparam) != WA_INACTIVE && !is_iconic( hwnd )) NtUserSetFocus( hwnd ); + break; + + case WM_MOUSEWHEEL: + if (get_window_long( hwnd, GWL_STYLE ) & WS_CHILD) + result = send_message( get_parent( hwnd ), WM_MOUSEWHEEL, wparam, lparam ); + break; + + case WM_GETDLGCODE: + break; + case WM_SETTEXT: result = set_window_text( hwnd, (void *)lparam, ansi ); break;
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=114533
Your paranoid android.
=== debian11 (64 bit WoW report) ===
user32: win.c:10982: Test failed: Expected foreground window 00000000001A0124, got 0000000001390054
From: Jacek Caban jacek@codeweavers.com
Signed-off-by: Jacek Caban jacek@codeweavers.com --- dlls/user32/defwnd.c | 19 ------------------- dlls/win32u/defwnd.c | 28 ++++++++++++++++++++++++++++ dlls/win32u/input.c | 9 --------- dlls/win32u/win32u_private.h | 1 + 4 files changed, 29 insertions(+), 28 deletions(-)
diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c index af2b32614bc..74dfa609bbd 100644 --- a/dlls/user32/defwnd.c +++ b/dlls/user32/defwnd.c @@ -266,25 +266,6 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa DEFWND_Print(hwnd, (HDC)wParam, lParam); return 0;
- case WM_ERASEBKGND: - case WM_ICONERASEBKGND: - { - RECT rect; - HDC hdc = (HDC)wParam; - HBRUSH hbr = (HBRUSH)GetClassLongPtrW( hwnd, GCLP_HBRBACKGROUND ); - if (!hbr) return 0; - - if (GetClassLongW( hwnd, GCL_STYLE ) & CS_PARENTDC) - { - /* can't use GetClipBox with a parent DC or we fill the whole parent */ - GetClientRect( hwnd, &rect ); - DPtoLP( hdc, (LPPOINT)&rect, 2 ); - } - else GetClipBox( hdc, &rect ); - FillRect( hdc, &rect, hbr ); - return 1; - } - case WM_CTLCOLORMSGBOX: case WM_CTLCOLOREDIT: case WM_CTLCOLORLISTBOX: diff --git a/dlls/win32u/defwnd.c b/dlls/win32u/defwnd.c index 72d9aa40164..ec9a1685325 100644 --- a/dlls/win32u/defwnd.c +++ b/dlls/win32u/defwnd.c @@ -31,6 +31,15 @@ WINE_DEFAULT_DEBUG_CHANNEL(win);
+void fill_rect( HDC dc, const RECT *rect, HBRUSH hbrush ) +{ + HBRUSH prev_brush; + + prev_brush = NtGdiSelectBrush( dc, hbrush ); + NtGdiPatBlt( dc, rect->left, rect->top, rect->right - rect->left, rect->bottom - rect->top, PATCOPY ); + if (prev_brush) NtGdiSelectBrush( dc, prev_brush ); +} + /*********************************************************************** * AdjustWindowRectEx (win32u.so) */ @@ -310,6 +319,25 @@ LRESULT default_window_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, result = send_message( get_parent( hwnd ), WM_MOUSEWHEEL, wparam, lparam ); break;
+ case WM_ERASEBKGND: + case WM_ICONERASEBKGND: + { + RECT rect; + HDC hdc = (HDC)wparam; + HBRUSH hbr = UlongToHandle( get_class_long( hwnd, GCLP_HBRBACKGROUND, FALSE )); + if (!hbr) break; + + if (get_class_long( hwnd, GCL_STYLE, FALSE ) & CS_PARENTDC) + { + /* can't use GetClipBox with a parent DC or we fill the whole parent */ + get_client_rect( hwnd, &rect ); + NtGdiTransformPoints( hdc, (POINT *)&rect, (POINT *)&rect, 1, NtGdiDPtoLP ); + } + else NtGdiGetAppClipBox( hdc, &rect ); + fill_rect( hdc, &rect, hbr ); + return 1; + } + case WM_GETDLGCODE: break;
diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c index 877e3f1a064..2b196fb5b1d 100644 --- a/dlls/win32u/input.c +++ b/dlls/win32u/input.c @@ -1799,15 +1799,6 @@ static void display_caret( HWND hwnd, const RECT *r ) NtUserReleaseDC( hwnd, dc ); }
-static void fill_rect( HDC dc, const RECT *rect, HBRUSH hbrush ) -{ - HBRUSH prev_brush; - - prev_brush = NtGdiSelectBrush( dc, hbrush ); - NtGdiPatBlt( dc, rect->left, rect->top, rect->right - rect->left, rect->bottom - rect->top, PATCOPY ); - if (prev_brush) NtGdiSelectBrush( dc, prev_brush ); -} - static unsigned int get_caret_registry_timeout(void) { char value_buffer[FIELD_OFFSET(KEY_VALUE_PARTIAL_INFORMATION, Data[11 * sizeof(WCHAR)])]; diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index ea6d67750b4..63eca06ecd6 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -353,6 +353,7 @@ extern void register_window_surface( struct window_surface *old, /* defwnd.c */ extern LRESULT default_window_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, BOOL ansi ) DECLSPEC_HIDDEN; +extern void fill_rect( HDC dc, const RECT *rect, HBRUSH hbrush ) DECLSPEC_HIDDEN;
/* hook.c */ extern LRESULT call_current_hook( HHOOK hhook, INT code, WPARAM wparam, LPARAM lparam ) DECLSPEC_HIDDEN;
From: Jacek Caban jacek@codeweavers.com
Signed-off-by: Jacek Caban jacek@codeweavers.com --- dlls/user32/defwnd.c | 3 --- dlls/user32/win.h | 1 - dlls/user32/winpos.c | 25 ------------------------- dlls/win32u/defwnd.c | 22 ++++++++++++++++++++++ dlls/win32u/win32u_private.h | 1 + dlls/win32u/window.c | 2 +- 6 files changed, 24 insertions(+), 30 deletions(-)
diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c index 74dfa609bbd..c4263edac93 100644 --- a/dlls/user32/defwnd.c +++ b/dlls/user32/defwnd.c @@ -180,9 +180,6 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa NC_HandleNCCalcSize( hwnd, wParam, (RECT *)lParam ); break;
- case WM_WINDOWPOSCHANGING: - return WINPOS_HandleWindowPosChanging( hwnd, (WINDOWPOS *)lParam ); - case WM_WINDOWPOSCHANGED: DEFWND_HandleWindowPosChanged( hwnd, (const WINDOWPOS *)lParam ); break; diff --git a/dlls/user32/win.h b/dlls/user32/win.h index 0c5bb2be5a8..c9ac3b8e977 100644 --- a/dlls/user32/win.h +++ b/dlls/user32/win.h @@ -60,7 +60,6 @@ static inline void WIN_ReleasePtr( WND *ptr )
extern LRESULT HOOK_CallHooks( INT id, INT code, WPARAM wparam, LPARAM lparam, BOOL unicode ) DECLSPEC_HIDDEN;
-extern LONG WINPOS_HandleWindowPosChanging(HWND hwnd, WINDOWPOS *winpos) DECLSPEC_HIDDEN; extern HWND WINPOS_WindowFromPoint( HWND hwndScope, POINT pt, INT *hittest ) DECLSPEC_HIDDEN; extern void WINPOS_ActivateOtherWindow( HWND hwnd ) DECLSPEC_HIDDEN; extern void WINPOS_SysCommandSizeMove( HWND hwnd, WPARAM wParam ) DECLSPEC_HIDDEN; diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c index cdcd03484cd..a5bc7d9ce17 100644 --- a/dlls/user32/winpos.c +++ b/dlls/user32/winpos.c @@ -653,31 +653,6 @@ void WINPOS_ActivateOtherWindow(HWND hwnd) }
-/*********************************************************************** - * WINPOS_HandleWindowPosChanging - * - * Default handling for a WM_WINDOWPOSCHANGING. Called from DefWindowProc(). - */ -LONG WINPOS_HandleWindowPosChanging( HWND hwnd, WINDOWPOS *winpos ) -{ - LONG style = GetWindowLongW( hwnd, GWL_STYLE ); - - if (winpos->flags & SWP_NOSIZE) return 0; - if ((style & WS_THICKFRAME) || ((style & (WS_POPUP | WS_CHILD)) == 0)) - { - MINMAXINFO info = NtUserGetMinMaxInfo( hwnd ); - winpos->cx = min( winpos->cx, info.ptMaxTrackSize.x ); - winpos->cy = min( winpos->cy, info.ptMaxTrackSize.y ); - if (!(style & WS_MINIMIZE)) - { - winpos->cx = max( winpos->cx, info.ptMinTrackSize.x ); - winpos->cy = max( winpos->cy, info.ptMinTrackSize.y ); - } - } - return 0; -} - - /*********************************************************************** * BeginDeferWindowPos (USER32.@) */ diff --git a/dlls/win32u/defwnd.c b/dlls/win32u/defwnd.c index ec9a1685325..42629ed45ff 100644 --- a/dlls/win32u/defwnd.c +++ b/dlls/win32u/defwnd.c @@ -195,6 +195,25 @@ static HICON set_window_icon( HWND hwnd, WPARAM type, HICON icon ) return ret; }
+static LONG handle_window_pos_changing( HWND hwnd, WINDOWPOS *winpos ) +{ + LONG style = get_window_long( hwnd, GWL_STYLE ); + + if (winpos->flags & SWP_NOSIZE) return 0; + if ((style & WS_THICKFRAME) || ((style & (WS_POPUP | WS_CHILD)) == 0)) + { + MINMAXINFO info = get_min_max_info( hwnd ); + winpos->cx = min( winpos->cx, info.ptMaxTrackSize.x ); + winpos->cy = min( winpos->cy, info.ptMaxTrackSize.y ); + if (!(style & WS_MINIMIZE)) + { + winpos->cx = max( winpos->cx, info.ptMinTrackSize.x ); + winpos->cy = max( winpos->cy, info.ptMinTrackSize.y ); + } + } + return 0; +} + static LRESULT handle_sys_command( HWND hwnd, WPARAM wparam, LPARAM lparam ) { if (!is_window_enabled( hwnd )) return 0; @@ -255,6 +274,9 @@ LRESULT default_window_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, break; }
+ case WM_WINDOWPOSCHANGING: + return handle_window_pos_changing( hwnd, (WINDOWPOS *)lparam ); + case WM_PAINTICON: case WM_PAINT: { diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index 63eca06ecd6..e459e6df6bd 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -434,6 +434,7 @@ extern HWND get_parent( HWND hwnd ) DECLSPEC_HIDDEN; extern HWND get_hwnd_message_parent(void) DECLSPEC_HIDDEN; extern DPI_AWARENESS_CONTEXT get_window_dpi_awareness_context( HWND hwnd ) DECLSPEC_HIDDEN; extern BOOL get_window_placement( HWND hwnd, WINDOWPLACEMENT *placement ) DECLSPEC_HIDDEN; +extern MINMAXINFO get_min_max_info( HWND hwnd ) DECLSPEC_HIDDEN; extern HWND get_window_relative( HWND hwnd, UINT rel ) DECLSPEC_HIDDEN; extern DWORD get_window_thread( HWND hwnd, DWORD *process ) DECLSPEC_HIDDEN; extern HWND is_current_process_window( HWND hwnd ) DECLSPEC_HIDDEN; diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index 94cdd7f7280..31512c03e15 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -3657,7 +3657,7 @@ static void send_parent_notify( HWND hwnd, UINT msg ) * * Get the minimized and maximized information for a window. */ -static MINMAXINFO get_min_max_info( HWND hwnd ) +MINMAXINFO get_min_max_info( HWND hwnd ) { LONG style = get_window_long( hwnd, GWL_STYLE ); LONG exstyle = get_window_long( hwnd, GWL_EXSTYLE );
Huw Davies (@huw) commented about dlls/win32u/defwnd.c:
- if (winpos->flags & SWP_NOSIZE) return 0;
- if ((style & WS_THICKFRAME) || ((style & (WS_POPUP | WS_CHILD)) == 0))
- {
- MINMAXINFO info = get_min_max_info( hwnd );
winpos->cx = min( winpos->cx, info.ptMaxTrackSize.x );
winpos->cy = min( winpos->cy, info.ptMaxTrackSize.y );
- if (!(style & WS_MINIMIZE))
- {
winpos->cx = max( winpos->cx, info.ptMinTrackSize.x );
winpos->cy = max( winpos->cy, info.ptMinTrackSize.y );
- }
- }
- return 0;
+}
There are some tabs left in this functions.
I don't seem to be able to push to your branch, otherwise I'd have fixed them up myself.