make sure uiState is up to date for GC's during custom draw
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 b65de4c..8039aa2 100755
--- 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
@@ -3036,6 +3036,7 @@
 	data.hPen = OS.CreatePen (OS.PS_SOLID, 0, data.foreground);
 	data.hBrush = OS.CreateSolidBrush (data.background);
 	data.hFont = hFont;
+	data.uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0);
 	int nSavedDC = OS.SaveDC (hDC);
 	GC gc = GC.win32_new (hDC, data);
 	RECT cellRect = item.getBounds (nmcd.dwItemSpec, nmcd.iSubItem, true, true, true, true, hDC);
@@ -3344,6 +3345,7 @@
 	}
 	data.hPen = OS.CreatePen (OS.PS_SOLID, 0, data.foreground);
 	data.hBrush = OS.CreateSolidBrush (data.background);
+	data.uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0);
 	int nSavedDC = OS.SaveDC (hDC);
 	GC gc = GC.win32_new (hDC, data);
 	RECT itemRect = item.getBounds (nmcd.dwItemSpec, nmcd.iSubItem, true, true, false, false, hDC);
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 c56eb53..ae40b08 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
@@ -596,6 +596,7 @@
 						data.hPen = OS.CreatePen (OS.PS_SOLID, 0, data.foreground);
 						data.hBrush = OS.CreateSolidBrush (data.background);
 						data.hFont = hFont;
+						data.uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0);
 						GC gc = GC.win32_new (hDC, data);
 						Event event = new Event ();
 						event.item = item;
@@ -775,6 +776,7 @@
 				}
 				data.hPen = OS.CreatePen (OS.PS_SOLID, 0, data.foreground);
 				data.hBrush = OS.CreateSolidBrush (data.background);
+				data.uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0);
 				OS.SelectObject (hDC, data.hPen);
 				OS.SelectObject (hDC, data.hBrush);
 				GC gc = GC.win32_new (hDC, data);
@@ -995,6 +997,7 @@
 			}
 			data.hPen = OS.CreatePen (OS.PS_SOLID, 0, data.foreground);
 			data.hBrush = OS.CreateSolidBrush (data.background);
+			data.uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0);
 			if (hFont != -1) data.hFont = hFont;
 			OS.SelectObject (hDC, data.hPen);
 			OS.SelectObject (hDC, data.hBrush);