diff options
author | Silenio Quarti <silenio> | 2010-09-15 14:10:34 +0000 |
---|---|---|
committer | Silenio Quarti <silenio> | 2010-09-15 14:10:34 +0000 |
commit | e26d8863696be429d51df6f05c47f72567eb09e2 (patch) | |
tree | 20a92a0e9864a861fa2aaadf25f1b423fd84f1f4 | |
parent | 349623ba7a68ab5844f83f3e60292f8251625921 (diff) | |
download | eclipse.platform.swt-e26d8863696be429d51df6f05c47f72567eb09e2.tar.gz eclipse.platform.swt-e26d8863696be429d51df6f05c47f72567eb09e2.tar.xz eclipse.platform.swt-e26d8863696be429d51df6f05c47f72567eb09e2.zip |
Bug 323943 - [SWT/Carbon]When Combo dispose, Eclipse display UI Error. (back port to 3.6.2)
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Combo.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Combo.java b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Combo.java index 574b9b0ac8..3b8ea963ff 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Combo.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Combo.java @@ -1268,13 +1268,20 @@ void releaseHandle () { /* * Bug in the Macintosh. Carbon segments fault if the combo box has * keyboard focus and it is disposed or its parent is disposed because - * there is an outstanding timer that runs after the widget is dispoed. + * there is an outstanding timer that runs after the widget is disposed. * The fix is to remove the combo box from its parent and dispose it when * the display is idle. * * NOTE: The problem does not happen when the window is disposed. + * + * NOTE: Pixel corruption happens on the parent window when the + * a drop down combo is not in focus and the contents is scrolled + * to the left. This is avoided by setting to combo size to zero. */ if ((getShell ().state & DISPOSE_SENT) == 0) { + if ((style & SWT.DROP_DOWN) != 0) { + OS.HIViewSetFrame (handle, new CGRect ()); + } display.addToDisposeWindow (handle); } super.releaseHandle (); |