diff options
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/TableItem.java | 6 | ||||
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/TreeItem.java | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/TableItem.java b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/TableItem.java index 337d27382a..2547f81d3a 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/TableItem.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/TableItem.java @@ -137,7 +137,11 @@ int calculateWidth (int index, GC gc) { gc.setFont (font); if (image != null) width += image.getBounds ().width + parent.getGap (); if (text != null && text.length () > 0) width += gc.stringExtent (text).x; - if (parent.hooks (SWT.MeasureItem)) { + boolean sendMeasure = true; + if ((parent.style & SWT.VIRTUAL) != 0) { + sendMeasure = cached; + } + if (sendMeasure && parent.hooks (SWT.MeasureItem)) { Event event = new Event (); event.item = this; event.index = index; diff --git a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/TreeItem.java b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/TreeItem.java index 4f6c8eb593..6924371f61 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/TreeItem.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/TreeItem.java @@ -229,7 +229,11 @@ int calculateWidth (int index, GC gc) { gc.setFont (font); if (image != null) width += image.getBounds ().width + parent.getGap (); if (text != null && text.length () > 0) width += gc.stringExtent (text).x; - if (parent.hooks (SWT.MeasureItem)) { + boolean sendMeasure = true; + if ((parent.style & SWT.VIRTUAL) != 0) { + sendMeasure = cached; + } + if (sendMeasure && parent.hooks (SWT.MeasureItem)) { Event event = new Event (); event.item = this; event.index = index; |