summaryrefslogtreecommitdiffstatsabout
diff options
context:
space:
mode:
authorSilenio Quarti2013-01-28 17:36:21 (EST)
committer Carolyn MacLeod2013-04-09 10:49:32 (EDT)
commitaa33d35624bbe711e8abe2d8a4183c40b64b6d74 (patch)
treeaf9fb95a90962c4d9cf6a4e44241d943d47adb79
parentd303faab2781af39a707e01385d2cc03009c8638 (diff)
downloadeclipse.platform.swt-aa33d35624bbe711e8abe2d8a4183c40b64b6d74.zip
eclipse.platform.swt-aa33d35624bbe711e8abe2d8a4183c40b64b6d74.tar.gz
eclipse.platform.swt-aa33d35624bbe711e8abe2d8a4183c40b64b6d74.tar.bz2
Bug 395169 - Table contents disappear when scrolling horizontally (Windows 7 only)
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java
index e54b61f..ec71cb1 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java
@@ -6474,8 +6474,11 @@ LRESULT WM_HSCROLL (long /*int*/ wParam, long /*int*/ lParam) {
boolean [] visible = new boolean [columnCount];
for (int i=0; i<columnCount; i++) {
visible [i] = true;
- if (OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, i, headerRect) != 0) {
- OS.MapWindowPoints (hwndHeader, handle, headerRect, 2);
+ headerRect.top = i;
+ headerRect.left = OS.LVIR_BOUNDS;
+ if (OS.SendMessage (handle, OS.LVM_GETSUBITEMRECT, 0, headerRect) != 0) {
+ headerRect.top = rect.top;
+ headerRect.bottom = rect.bottom;
visible [i] = OS.IntersectRect(headerRect, rect, headerRect);
}
}
@@ -6573,8 +6576,11 @@ LRESULT WM_VSCROLL (long /*int*/ wParam, long /*int*/ lParam) {
boolean [] visible = new boolean [columnCount];
for (int i=0; i<columnCount; i++) {
visible [i] = true;
- if (OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, i, headerRect) != 0) {
- OS.MapWindowPoints (hwndHeader, handle, headerRect, 2);
+ headerRect.top = i;
+ headerRect.left = OS.LVIR_BOUNDS;
+ if (OS.SendMessage (handle, OS.LVM_GETSUBITEMRECT, 0, headerRect) != 0) {
+ headerRect.top = rect.top;
+ headerRect.bottom = rect.bottom;
visible [i] = OS.IntersectRect(headerRect, rect, headerRect);
}
}