Commit be89816e authored by Huw D M Davies's avatar Huw D M Davies Committed by Alexandre Julliard

Avoid infinite loop in WINPOS_FindIconPos if the width of the parent

client area is less than the icon spacing.
parent c64ec4a9
...@@ -136,7 +136,8 @@ static POINT16 WINPOS_FindIconPos( WND* wndPtr, POINT16 pt ) ...@@ -136,7 +136,8 @@ static POINT16 WINPOS_FindIconPos( WND* wndPtr, POINT16 pt )
y = rectParent.bottom; y = rectParent.bottom;
for (;;) for (;;)
{ {
for (x = rectParent.left; x <= rectParent.right-xspacing; x += xspacing) x = rectParent.left;
do
{ {
/* Check if another icon already occupies this spot */ /* Check if another icon already occupies this spot */
WND *childPtr = WIN_LockWndPtr(wndPtr->parent->child); WND *childPtr = WIN_LockWndPtr(wndPtr->parent->child);
...@@ -159,7 +160,8 @@ static POINT16 WINPOS_FindIconPos( WND* wndPtr, POINT16 pt ) ...@@ -159,7 +160,8 @@ static POINT16 WINPOS_FindIconPos( WND* wndPtr, POINT16 pt )
pt.y = y - (yspacing + GetSystemMetrics(SM_CYICON)) / 2; pt.y = y - (yspacing + GetSystemMetrics(SM_CYICON)) / 2;
return pt; return pt;
} }
} x += xspacing;
} while(x <= rectParent.right-xspacing);
y -= yspacing; y -= yspacing;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment