diff options
author | Grant Gayed <grant_gayed@ca.ibm.com> | 2013-07-11 12:27:38 -0400 |
---|---|---|
committer | Grant Gayed <grant_gayed@ca.ibm.com> | 2013-07-11 12:28:27 -0400 |
commit | 200e62389c669a1f87627fe1ed034f46c7d17ed8 (patch) | |
tree | dc06d0f44dcc9f36c96091ad3678f48e788614ff /bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt | |
parent | 3bd130c31bf829e2454963f915aed0e3e9db5b5b (diff) | |
download | eclipse.platform.swt-200e62389c669a1f87627fe1ed034f46c7d17ed8.tar.gz eclipse.platform.swt-200e62389c669a1f87627fe1ed034f46c7d17ed8.tar.xz eclipse.platform.swt-200e62389c669a1f87627fe1ed034f46c7d17ed8.zip |
Bug 412706 - Widget is disposed using Browser in Section
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt')
8 files changed, 14 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Composite.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Composite.java index c28b83b150..30e43b70f8 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Composite.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Composite.java @@ -1430,6 +1430,7 @@ LRESULT WM_PARENTNOTIFY (long /*int*/ wParam, long /*int*/ lParam) { } LRESULT WM_PAINT (long /*int*/ wParam, long /*int*/ lParam) { + if ((state & DISPOSE_SENT) != 0) return LRESULT.ZERO; if ((state & CANVAS) == 0 || (state & FOREIGN_HANDLE) != 0) { return super.WM_PAINT (wParam, lParam); } diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java index 65013a6f5d..e1b859748d 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java @@ -5170,6 +5170,7 @@ LRESULT WM_NOTIFY (long /*int*/ wParam, long /*int*/ lParam) { } LRESULT WM_PAINT (long /*int*/ wParam, long /*int*/ lParam) { + if ((state & DISPOSE_SENT) != 0) return LRESULT.ZERO; return wmPaint (handle, wParam, lParam); } diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/ExpandBar.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/ExpandBar.java index dce62815a0..461c312b8a 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/ExpandBar.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/ExpandBar.java @@ -749,6 +749,8 @@ LRESULT WM_MOUSEWHEEL (long /*int*/ wParam, long /*int*/ lParam) { } LRESULT WM_PAINT (long /*int*/ wParam, long /*int*/ lParam) { + if ((state & DISPOSE_SENT) != 0) return LRESULT.ZERO; + PAINTSTRUCT ps = new PAINTSTRUCT (); GCData data = new GCData (); data.ps = ps; diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Label.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Label.java index 9f5814c287..3edfc3e8bc 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Label.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Label.java @@ -550,6 +550,8 @@ LRESULT wmColorChild (long /*int*/ wParam, long /*int*/ lParam) { } LRESULT WM_PAINT (long /*int*/ wParam, long /*int*/ lParam) { + if ((state & DISPOSE_SENT) != 0) return LRESULT.ZERO; + if (OS.IsWinCE) { boolean drawImage = image != null; boolean drawSeparator = (style & SWT.SEPARATOR) != 0 && (style & SWT.SHADOW_NONE) == 0; diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java index 13554dd732..397afd3a06 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java @@ -990,9 +990,11 @@ LRESULT WM_MOUSEMOVE (long /*int*/ wParam, long /*int*/ lParam) { } LRESULT WM_PAINT (long /*int*/ wParam, long /*int*/ lParam) { + if ((state & DISPOSE_SENT) != 0) return LRESULT.ZERO; if (OS.COMCTL32_MAJOR >= 6) { return super.WM_PAINT (wParam, lParam); } + PAINTSTRUCT ps = new PAINTSTRUCT (); GCData data = new GCData (); data.ps = ps; diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Scale.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Scale.java index a0664b7e6f..fa98c04d12 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Scale.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Scale.java @@ -510,6 +510,8 @@ LRESULT WM_MOUSEWHEEL (long /*int*/ wParam, long /*int*/ lParam) { } LRESULT WM_PAINT (long /*int*/ wParam, long /*int*/ lParam) { + if ((state & DISPOSE_SENT) != 0) return LRESULT.ZERO; + /* * Bug in Windows. For some reason, when WM_CTLCOLORSTATIC * is used to implement transparency and returns a NULL brush, diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java index be969bb048..2c334304e8 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java @@ -6184,6 +6184,8 @@ LRESULT WM_MOUSEHOVER (long /*int*/ wParam, long /*int*/ lParam) { } LRESULT WM_PAINT (long /*int*/ wParam, long /*int*/ lParam) { + if ((state & DISPOSE_SENT) != 0) return LRESULT.ZERO; + _checkShrink(); if (fixScrollWidth) setScrollWidth (null, true); if (!OS.IsWinCE && OS.COMCTL32_MAJOR < 6) { diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java index e3fb43415d..4538de6baf 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java @@ -6962,6 +6962,8 @@ LRESULT WM_RBUTTONDOWN (long /*int*/ wParam, long /*int*/ lParam) { } LRESULT WM_PAINT (long /*int*/ wParam, long /*int*/ lParam) { + if ((state & DISPOSE_SENT) != 0) return LRESULT.ZERO; + if (shrink && !ignoreShrink) { /* Resize the item array to fit the last item */ int count = items.length - 1; |