diff options
author | Steve Northover <steve> | 2005-07-07 19:22:11 +0000 |
---|---|---|
committer | Steve Northover <steve> | 2005-07-07 19:22:11 +0000 |
commit | b1f6680e335c398aa1d7ef2662884f5170659c7f (patch) | |
tree | 7ecb659580f98441a15b5bc991622625c5b7bb43 | |
parent | 2ea25c96286236f354aced27faa694ecd64ebf8b (diff) | |
download | eclipse.platform.swt-b1f6680e335c398aa1d7ef2662884f5170659c7f.tar.gz eclipse.platform.swt-b1f6680e335c398aa1d7ef2662884f5170659c7f.tar.xz eclipse.platform.swt-b1f6680e335c398aa1d7ef2662884f5170659c7f.zip |
make sure default button is in widget tree
3 files changed, 7 insertions, 2 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Decorations.java b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Decorations.java index 09027e9465..682fed1aec 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Decorations.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Decorations.java @@ -411,7 +411,8 @@ void saveFocus () { public void setDefaultButton (Button button) { checkWidget(); if (button != null) { - if (button.isDisposed()) error(SWT.ERROR_INVALID_ARGUMENT); + if (button.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT); + if (button.menuShell () != this) error (SWT.ERROR_INVALID_PARENT); if ((button.style & SWT.PUSH) == 0) return; } if (button == defaultButton) return; diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Decorations.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Decorations.java index 735212c207..d000e14d42 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Decorations.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Decorations.java @@ -522,6 +522,7 @@ public void setDefaultButton (Button button) { int /*long*/ buttonHandle = 0; if (button != null) { if (button.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT); + if (button.menuShell () != this) error (SWT.ERROR_INVALID_PARENT); buttonHandle = button.handle; } saveDefault = defaultButton = button; diff --git a/bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Decorations.java b/bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Decorations.java index 9fce63c9c1..77f6739f78 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Decorations.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Decorations.java @@ -488,6 +488,10 @@ void remove (Menu menu) { */ public void setDefaultButton (Button button) { checkWidget(); + if (button != null) { + if (button.isDisposed ()) error(SWT.ERROR_INVALID_ARGUMENT); + if (button.menuShell () != this) error(SWT.ERROR_INVALID_PARENT); + } setDefaultButton (button, true); } void setDefaultButton (Button button, boolean save) { @@ -497,7 +501,6 @@ void setDefaultButton (Button button, boolean save) { return; } } else { - if (button.isDisposed()) error(SWT.ERROR_INVALID_ARGUMENT); if ((button.style & SWT.PUSH) == 0) return; if (button == defaultButton) return; } |