summaryrefslogtreecommitdiffstats
path: root/bundles
diff options
context:
space:
mode:
Diffstat (limited to 'bundles')
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java
index 87b2d2334b..b5eb6fb882 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java
@@ -6524,13 +6524,15 @@ LRESULT wmNotify (NMHDR hdr, int wParam, int lParam) {
OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, phdn.iItem, headerRect);
int gridWidth = linesVisible ? GRID_WIDTH : 0;
rect.left = headerRect.right - gridWidth;
+ HDITEM oldItem = new HDITEM ();
+ oldItem.mask = OS.HDI_WIDTH;
+ OS.SendMessage (hwndHeader, OS.HDM_GETITEM, phdn.iItem, oldItem);
+ int deltaX = newItem.cxy - oldItem.cxy;
if (explorerTheme || (findImageControl () != null || hooks (SWT.EraseItem) || hooks (SWT.PaintItem))) {
OS.InvalidateRect (handle, rect, true);
+ OS.OffsetRect (rect, deltaX, 0);
+ OS.InvalidateRect (handle, rect, true);
} else {
- HDITEM oldItem = new HDITEM ();
- oldItem.mask = OS.HDI_WIDTH;
- OS.SendMessage (hwndHeader, OS.HDM_GETITEM, phdn.iItem, oldItem);
- int deltaX = newItem.cxy - oldItem.cxy;
int flags = OS.SW_INVALIDATE | OS.SW_ERASE;
OS.ScrollWindowEx (handle, deltaX, 0, rect, null, 0, null, flags);
}