diff options
author | Kevin Barnes <krbarnes> | 2008-02-01 17:15:08 +0000 |
---|---|---|
committer | Kevin Barnes <krbarnes> | 2008-02-01 17:15:08 +0000 |
commit | 6139c6e26cd836fd18e47718989b0319dde81e15 (patch) | |
tree | dfc778e31f7f7904008888fa7b6cf55b7848a83a | |
parent | fc0e6b84f6c4e64e9af96370f80c85dc819267a2 (diff) | |
download | eclipse.platform.swt-6139c6e26cd836fd18e47718989b0319dde81e15.tar.gz eclipse.platform.swt-6139c6e26cd836fd18e47718989b0319dde81e15.tar.xz eclipse.platform.swt-6139c6e26cd836fd18e47718989b0319dde81e15.zip |
191252 - Virtual Tree w/ columns: Items appear in wrong order when sortDirection is SWT.DOWN
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Table.java | 3 | ||||
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Tree.java | 10 |
2 files changed, 11 insertions, 2 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Table.java b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Table.java index c9b01a7ad0..f0cb53717c 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Table.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Table.java @@ -2848,6 +2848,9 @@ public void setItemCount (int count) { callbacks.v1_itemCompareCallback = itemCompareProc (); OS.SetDataBrowserCallbacks (handle, callbacks); fixScrollBar (); + if (sortColumn != null && !sortColumn.isDisposed () && sortDirection == SWT.DOWN) { + OS.UpdateDataBrowserItems (handle, 0, 0, null, OS.kDataBrowserItemNoProperty, OS.kDataBrowserNoItem); + } setRedraw (true); } diff --git a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Tree.java index 2bd6736ea1..3a1714a64a 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Tree.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Tree.java @@ -2113,8 +2113,10 @@ int _indexOf (TreeItem parentItem, TreeItem item) { } int itemCompareProc (int browser, int itemOne, int itemTwo, int sortProperty) { - TreeItem item1 = _getItem (itemOne, false); - TreeItem item2 = _getItem (itemTwo, false); + boolean create = (style & SWT.VIRTUAL) != 0 && sortColumn != null + && !sortColumn.isDisposed () && sortDirection == SWT.DOWN; + TreeItem item1 = _getItem (itemOne, create); + TreeItem item2 = _getItem (itemTwo, create); if (item1 == null || item2 == null) return OS.noErr; int index1 = _indexOf (item1.parentItem, item1); int index2 = _indexOf (item2.parentItem , item2); @@ -3013,6 +3015,10 @@ void setItemCount (TreeItem parentItem, int count) { callbacks.v1_itemNotificationCallback = display.itemNotificationProc; callbacks.v1_itemCompareCallback = display.itemCompareProc; OS.SetDataBrowserCallbacks (handle, callbacks); + if ((style & SWT.VIRTUAL) != 0 && sortColumn != null + && !sortColumn.isDisposed () && sortDirection == SWT.DOWN) { + OS.UpdateDataBrowserItems (handle, 0, 0, null, OS.kDataBrowserItemNoProperty, OS.kDataBrowserNoItem); + } setRedraw (true); if (itemCount == 0 && parentItem != null) parentItem.redraw (OS.kDataBrowserNoItem); } |