summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSilenio Quarti <silenio>2010-09-15 14:10:34 +0000
committerSilenio Quarti <silenio>2010-09-15 14:10:34 +0000
commite26d8863696be429d51df6f05c47f72567eb09e2 (patch)
tree20a92a0e9864a861fa2aaadf25f1b423fd84f1f4
parent349623ba7a68ab5844f83f3e60292f8251625921 (diff)
downloadeclipse.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.java9
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 ();