if (fixScrollWidth) setScrollWidth (true);
public Point computeSize (int wHint, int hHint, boolean changed) {	checkWidget ();	int bits = 0;	if (wHint != SWT.DEFAULT) {		bits |= wHint & 0xFFFF;	} else {		int width = 0;		int hwndHeader = OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0);		int count = OS.SendMessage (hwndHeader, OS.HDM_GETITEMCOUNT, 0, 0);		for (int i=0; i<count; i++) {			width += OS.SendMessage (handle, OS.LVM_GETCOLUMNWIDTH, i, 0);		}		bits |= width & 0xFFFF;	}	if (hHint != SWT.DEFAULT) bits |= hHint << 16;	int result = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, -1, bits);	int width = result & 0xFFFF, height = result >> 16;		/*	* Feature in Windows.  The height returned by LVM_APPROXIMATEVIEWRECT	* includes the trim plus the height of the items plus one extra row.	* The fix is to subtract the height of one row from the result height.	*/	int empty = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 0, 0);	int oneItem = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 1, 0);	height -= (oneItem >> 16) - (empty >> 16);		if (width == 0) width = DEFAULT_WIDTH;	if (height == 0) height = DEFAULT_HEIGHT;	if (wHint != SWT.DEFAULT) width = wHint;	if (hHint != SWT.DEFAULT) height = hHint;	int border = getBorderWidth ();	width += border * 2;  height += border * 2;	if ((style & SWT.V_SCROLL) != 0) {		width += OS.GetSystemMetrics (OS.SM_CXVSCROLL);	}	if ((style & SWT.H_SCROLL) != 0) {		height += OS.GetSystemMetrics (OS.SM_CYHSCROLL);	}	return new Point (width, height);}