summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Menu.java
diff options
context:
space:
mode:
authorSteve Northover <steve>2007-10-25 19:07:54 +0000
committerSteve Northover <steve>2007-10-25 19:07:54 +0000
commitac1cb622bd117559fce6fef13f61cee1624cd94b (patch)
tree38e8afbb7be18fcfc294e7bc0aa51e9447ebba9d /bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Menu.java
parentf4bf784633a3133897e45a4c20e9dd0f60a6f50f (diff)
downloadeclipse.platform.swt-ac1cb622bd117559fce6fef13f61cee1624cd94b.tar.gz
eclipse.platform.swt-ac1cb622bd117559fce6fef13f61cee1624cd94b.tar.xz
eclipse.platform.swt-ac1cb622bd117559fce6fef13f61cee1624cd94b.zip
207263 - NPE in org.eclipse.swt.widgets.Control.WM_MENUSELECT
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Menu.java')
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Menu.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Menu.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Menu.java
index bd757dc484..2cd3dc7b86 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Menu.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Menu.java
@@ -568,12 +568,17 @@ void destroyItem (MenuItem item) {
}
void destroyWidget () {
+ MenuItem parentItem = cascade;
int /*long*/ hMenu = handle, hCB = hwndCB;
releaseHandle ();
if (OS.IsWinCE && hCB != 0) {
OS.CommandBar_Destroy (hCB);
} else {
- if (hMenu != 0) OS.DestroyMenu (hMenu);
+ if (parentItem != null) {
+ if (!OS.IsSP) parentItem.setMenu (null, true);
+ } else {
+ if (hMenu != 0) OS.DestroyMenu (hMenu);
+ }
}
}
@@ -1098,6 +1103,7 @@ void redraw () {
void releaseHandle () {
super.releaseHandle ();
handle = hwndCB = 0;
+ cascade = null;
}
void releaseChildren (boolean destroy) {
@@ -1144,7 +1150,6 @@ void releaseWidget () {
}
if (parent != null) parent.removeMenu (this);
parent = null;
- cascade = null;
}
/**