Mikołaj Zalewski : comctl32: header: Merge the simple delete and complex delete.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Sep 20 05:33:36 CDT 2006
Module: wine
Branch: master
Commit: f85ceb1be30aa844acc195ac474f4e01bd76a4b3
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=f85ceb1be30aa844acc195ac474f4e01bd76a4b3
Author: Mikołaj Zalewski <mikolaj at zalewski.pl>
Date: Mon Sep 18 11:50:32 2006 +0200
comctl32: header: Merge the simple delete and complex delete.
---
dlls/comctl32/header.c | 62 +++++++++++++++++++-----------------------------
1 files changed, 24 insertions(+), 38 deletions(-)
diff --git a/dlls/comctl32/header.c b/dlls/comctl32/header.c
index eee9b36..bb4173e 100644
--- a/dlls/comctl32/header.c
+++ b/dlls/comctl32/header.c
@@ -1060,54 +1060,40 @@ HEADER_DeleteItem (HWND hwnd, WPARAM wPa
{
HEADER_INFO *infoPtr = HEADER_GetInfoPtr(hwnd);
INT iItem = (INT)wParam;
+ INT iOrder;
+ INT i;
TRACE("[iItem=%d]\n", iItem);
if ((iItem < 0) || (iItem >= (INT)infoPtr->uNumItem))
return FALSE;
- if (infoPtr->uNumItem == 1) {
- TRACE("Simple delete!\n");
- HEADER_DisposeItem(&infoPtr->items[0]);
- Free (infoPtr->items);
- Free(infoPtr->order);
- infoPtr->items = 0;
- infoPtr->order = 0;
- infoPtr->uNumItem = 0;
- }
- else {
- INT i;
- INT iOrder;
- TRACE("Complex delete! [iItem=%d]\n", iItem);
-
- for (i = 0; i < infoPtr->uNumItem; i++)
- TRACE("%d: order=%d, iOrder=%d, ->iOrder=%d\n", i, infoPtr->order[i], infoPtr->items[i].iOrder, infoPtr->items[infoPtr->order[i]].iOrder);
- HEADER_DisposeItem(&infoPtr->items[iItem]);
- iOrder = infoPtr->items[iItem].iOrder;
-
- infoPtr->uNumItem--;
- memmove(&infoPtr->items[iItem], &infoPtr->items[iItem + 1],
- (infoPtr->uNumItem - iItem) * sizeof(HEADER_ITEM));
- memmove(&infoPtr->order[iOrder], &infoPtr->order[iOrder + 1],
- (infoPtr->uNumItem - iOrder) * sizeof(INT));
- infoPtr->items = ReAlloc(infoPtr->items, sizeof(HEADER_ITEM) * infoPtr->uNumItem);
- infoPtr->order = ReAlloc(infoPtr->order, sizeof(INT) * infoPtr->uNumItem);
-
- /* Correct the orders */
- for (i = 0; i < infoPtr->uNumItem; i++)
- {
- if (infoPtr->order[i] > iItem)
- infoPtr->order[i]--;
- if (i >= iOrder)
- infoPtr->items[infoPtr->order[i]].iOrder = i;
- }
+ for (i = 0; i < infoPtr->uNumItem; i++)
+ TRACE("%d: order=%d, iOrder=%d, ->iOrder=%d\n", i, infoPtr->order[i], infoPtr->items[i].iOrder, infoPtr->items[infoPtr->order[i]].iOrder);
- for (i = 0; i < infoPtr->uNumItem; i++)
- TRACE("%d: order=%d, iOrder=%d, ->iOrder=%d\n", i, infoPtr->order[i], infoPtr->items[i].iOrder, infoPtr->items[infoPtr->order[i]].iOrder);
+ iOrder = infoPtr->items[iItem].iOrder;
+ HEADER_DisposeItem(&infoPtr->items[iItem]);
+
+ infoPtr->uNumItem--;
+ memmove(&infoPtr->items[iItem], &infoPtr->items[iItem + 1],
+ (infoPtr->uNumItem - iItem) * sizeof(HEADER_ITEM));
+ memmove(&infoPtr->order[iOrder], &infoPtr->order[iOrder + 1],
+ (infoPtr->uNumItem - iOrder) * sizeof(INT));
+ infoPtr->items = ReAlloc(infoPtr->items, sizeof(HEADER_ITEM) * infoPtr->uNumItem);
+ infoPtr->order = ReAlloc(infoPtr->order, sizeof(INT) * infoPtr->uNumItem);
+
+ /* Correct the orders */
+ for (i = 0; i < infoPtr->uNumItem; i++)
+ {
+ if (infoPtr->order[i] > iItem)
+ infoPtr->order[i]--;
+ if (i >= iOrder)
+ infoPtr->items[infoPtr->order[i]].iOrder = i;
}
+ for (i = 0; i < infoPtr->uNumItem; i++)
+ TRACE("%d: order=%d, iOrder=%d, ->iOrder=%d\n", i, infoPtr->order[i], infoPtr->items[i].iOrder, infoPtr->items[infoPtr->order[i]].iOrder);
HEADER_SetItemBounds (hwnd);
-
InvalidateRect(hwnd, NULL, FALSE);
return TRUE;
More information about the wine-cvs
mailing list