Nikolay Sivov : user32/combo: Simplify child controls position update helper.
Alexandre Julliard
julliard at winehq.org
Tue Nov 26 16:21:24 CST 2019
Module: wine
Branch: master
Commit: 13d7cad9dee194d750ec3829b167042cd3ff8d74
URL: https://source.winehq.org/git/wine.git/?a=commit;h=13d7cad9dee194d750ec3829b167042cd3ff8d74
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Tue Nov 26 12:59:21 2019 +0300
user32/combo: Simplify child controls position update helper.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/combo.c | 67 +++++++++++++++++++++++------------------------------
1 file changed, 29 insertions(+), 38 deletions(-)
diff --git a/dlls/user32/combo.c b/dlls/user32/combo.c
index 07d53f7341..d0affc0618 100644
--- a/dlls/user32/combo.c
+++ b/dlls/user32/combo.c
@@ -1408,45 +1408,36 @@ static LRESULT COMBO_GetTextA( LPHEADCOMBO lphc, INT count, LPSTR buf )
* This function sets window positions according to the updated
* component placement struct.
*/
-static void CBResetPos(
- LPHEADCOMBO lphc,
- const RECT *rectEdit,
- const RECT *rectLB,
- BOOL bRedraw)
+static void CBResetPos(HEADCOMBO *combo, BOOL redraw)
{
- BOOL bDrop = (CB_GETTYPE(lphc) != CBS_SIMPLE);
-
- /* NOTE: logs sometimes have WM_LBUTTONUP before a cascade of
- * sizing messages */
-
- if( lphc->wState & CBF_EDIT )
- SetWindowPos( lphc->hWndEdit, 0,
- rectEdit->left, rectEdit->top,
- rectEdit->right - rectEdit->left,
- rectEdit->bottom - rectEdit->top,
- SWP_NOZORDER | SWP_NOACTIVATE | ((bDrop) ? SWP_NOREDRAW : 0) );
-
- SetWindowPos( lphc->hWndLBox, 0,
- rectLB->left, rectLB->top,
- rectLB->right - rectLB->left,
- rectLB->bottom - rectLB->top,
- SWP_NOACTIVATE | SWP_NOZORDER | ((bDrop) ? SWP_NOREDRAW : 0) );
-
- if( bDrop )
- {
- if( lphc->wState & CBF_DROPPED )
- {
- lphc->wState &= ~CBF_DROPPED;
- ShowWindow( lphc->hWndLBox, SW_HIDE );
- }
+ BOOL drop = CB_GETTYPE(combo) != CBS_SIMPLE;
+
+ /* NOTE: logs sometimes have WM_LBUTTONUP before a cascade of
+ * sizing messages */
+ if (combo->wState & CBF_EDIT)
+ SetWindowPos(combo->hWndEdit, 0, combo->textRect.left, combo->textRect.top,
+ combo->textRect.right - combo->textRect.left,
+ combo->textRect.bottom - combo->textRect.top,
+ SWP_NOZORDER | SWP_NOACTIVATE | (drop ? SWP_NOREDRAW : 0));
+
+ SetWindowPos(combo->hWndLBox, 0, combo->droppedRect.left, combo->droppedRect.top,
+ combo->droppedRect.right - combo->droppedRect.left,
+ combo->droppedRect.bottom - combo->droppedRect.top,
+ SWP_NOACTIVATE | SWP_NOZORDER | (drop ? SWP_NOREDRAW : 0));
+
+ if (drop)
+ {
+ if (combo->wState & CBF_DROPPED)
+ {
+ combo->wState &= ~CBF_DROPPED;
+ ShowWindow(combo->hWndLBox, SW_HIDE);
+ }
- if( bRedraw && !(lphc->wState & CBF_NOREDRAW) )
- RedrawWindow( lphc->self, NULL, 0,
- RDW_INVALIDATE | RDW_ERASE | RDW_UPDATENOW );
- }
+ if (redraw && !(combo->wState & CBF_NOREDRAW))
+ RedrawWindow(combo->self, NULL, 0, RDW_INVALIDATE | RDW_ERASE | RDW_UPDATENOW);
+ }
}
-
/***********************************************************************
* COMBO_Size
*/
@@ -1491,7 +1482,7 @@ static void COMBO_Size( LPHEADCOMBO lphc )
CBCalcPlacement(lphc);
- CBResetPos( lphc, &lphc->textRect, &lphc->droppedRect, FALSE );
+ CBResetPos(lphc, FALSE);
}
@@ -1519,7 +1510,7 @@ static void COMBO_Font( LPHEADCOMBO lphc, HFONT hFont, BOOL bRedraw )
{
CBCalcPlacement(lphc);
- CBResetPos( lphc, &lphc->textRect, &lphc->droppedRect, TRUE );
+ CBResetPos(lphc, TRUE);
}
else
{
@@ -1548,7 +1539,7 @@ static LRESULT COMBO_SetItemHeight( LPHEADCOMBO lphc, INT index, INT height )
{
CBCalcPlacement(lphc);
- CBResetPos( lphc, &lphc->textRect, &lphc->droppedRect, TRUE );
+ CBResetPos(lphc, TRUE);
}
else
{
More information about the wine-cvs
mailing list