summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Northover <steve>2005-07-07 19:22:11 +0000
committerSteve Northover <steve>2005-07-07 19:22:11 +0000
commitb1f6680e335c398aa1d7ef2662884f5170659c7f (patch)
tree7ecb659580f98441a15b5bc991622625c5b7bb43
parent2ea25c96286236f354aced27faa694ecd64ebf8b (diff)
downloadeclipse.platform.swt-b1f6680e335c398aa1d7ef2662884f5170659c7f.tar.gz
eclipse.platform.swt-b1f6680e335c398aa1d7ef2662884f5170659c7f.tar.xz
eclipse.platform.swt-b1f6680e335c398aa1d7ef2662884f5170659c7f.zip
make sure default button is in widget tree
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Decorations.java3
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Decorations.java1
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Decorations.java5
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;
}