[PATCH 2/3] comctl32/combo: Simplify child controls position update helper.
Nikolay Sivov
nsivov at codeweavers.com
Wed Nov 27 04:27:21 CST 2019
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/comctl32/combo.c | 66 +++++++++++++++++++------------------------
1 file changed, 29 insertions(+), 37 deletions(-)
diff --git a/dlls/comctl32/combo.c b/dlls/comctl32/combo.c
index 57fddefc93..25fb38c4c3 100644
--- a/dlls/comctl32/combo.c
+++ b/dlls/comctl32/combo.c
@@ -1350,42 +1350,34 @@ static LRESULT COMBO_GetText( HEADCOMBO *lphc, INT count, LPWSTR 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 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 (!(combo->wState & CBF_NOREDRAW))
+ RedrawWindow(combo->self, NULL, 0, RDW_INVALIDATE | RDW_ERASE | RDW_UPDATENOW);
+ }
}
@@ -1433,7 +1425,7 @@ static void COMBO_Size( LPHEADCOMBO lphc )
CBCalcPlacement(lphc);
- CBResetPos( lphc, &lphc->textRect, &lphc->droppedRect, TRUE );
+ CBResetPos(lphc);
}
@@ -1461,7 +1453,7 @@ static void COMBO_Font( LPHEADCOMBO lphc, HFONT hFont, BOOL bRedraw )
{
CBCalcPlacement(lphc);
- CBResetPos( lphc, &lphc->textRect, &lphc->droppedRect, TRUE );
+ CBResetPos(lphc);
}
else
{
@@ -1490,7 +1482,7 @@ static LRESULT COMBO_SetItemHeight( LPHEADCOMBO lphc, INT index, INT height )
{
CBCalcPlacement(lphc);
- CBResetPos( lphc, &lphc->textRect, &lphc->droppedRect, TRUE );
+ CBResetPos(lphc);
}
else
{
--
2.24.0
More information about the wine-devel
mailing list