diff options
author | Steve Northover <steve> | 2005-08-09 22:11:06 +0000 |
---|---|---|
committer | Steve Northover <steve> | 2005-08-09 22:11:06 +0000 |
commit | bf23089befb70064444a317792f096ff1dd200b6 (patch) | |
tree | decd38b32aa41f17dc344c66200761b03d4159b5 /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java | |
parent | 1bd4a6d238f246b1a33b1e165b82bcbcf963d2f9 (diff) | |
download | eclipse.platform.swt-bf23089befb70064444a317792f096ff1dd200b6.tar.gz eclipse.platform.swt-bf23089befb70064444a317792f096ff1dd200b6.tar.xz eclipse.platform.swt-bf23089befb70064444a317792f096ff1dd200b6.zip |
45708 & 4862 - recursive dispose
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java index cc3a446cd8..6200dd310e 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java @@ -194,6 +194,13 @@ protected void checkSubclass () { if (!isValidSubclass ()) error (SWT.ERROR_INVALID_SUBCLASS); } +void destroyWidget () { + int [] index = new int [1]; + parent.releaseItem (this, index, false); + parent.destroyItem (this); + releaseHandle (); +} + /** * Returns the receiver's background color. * @@ -862,16 +869,23 @@ public int indexOf (TreeItem item) { return index; } -void releaseChild () { - super.releaseChild (); - parent.destroyItem (this); +void releaseChildren (boolean destroy) { + if (destroy) { + int [] index = new int [1]; + parent.releaseItems (getItems (), index); + } + super.releaseChildren (destroy); } -void releaseWidget () { - super.releaseWidget (); +void releaseHandle () { if (handle != 0) OS.g_free (handle); handle = 0; + super.releaseHandle (); parent = null; +} + +void releaseWidget () { + super.releaseWidget (); font = null; cellFont = null; } |