diff options
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; |