diff options
author | Silenio Quarti <silenio_quarti@ca.ibm.com> | 2013-05-07 15:28:13 -0400 |
---|---|---|
committer | Silenio Quarti <silenio_quarti@ca.ibm.com> | 2013-05-07 15:29:04 -0400 |
commit | 05c6b3fa8c4627937d03b301669f023682a3cc99 (patch) | |
tree | c41c430a6e708f5cb8876993caa1d6f8312281b3 /bundles | |
parent | 11ce129f5a39073ea3f0ccccbd6f5ec71c6733d4 (diff) | |
download | eclipse.platform.swt-05c6b3fa8c4627937d03b301669f023682a3cc99.tar.gz eclipse.platform.swt-05c6b3fa8c4627937d03b301669f023682a3cc99.tar.xz eclipse.platform.swt-05c6b3fa8c4627937d03b301669f023682a3cc99.zip |
Bug 389491 - Screen turns black when moving tabs
Diffstat (limited to 'bundles')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java index 8a95e01dae..d8607495f2 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java @@ -49,6 +49,7 @@ public class Tracker extends Widget { Cursor clientCursor; int cursorOrientation = SWT.NONE; boolean inEvent = false; + boolean drawn; long /*int*/ hwndTransparent, hwndOpaque, oldTransparentProc, oldOpaqueProc; int oldX, oldY; @@ -511,7 +512,8 @@ public boolean open () { 0, OS.GetModuleHandle (null), null); - OS.SetLayeredWindowAttributes (hwndOpaque, 0xFFFFFF, (byte)0xFF, OS.LWA_COLORKEY | OS.LWA_ALPHA); + OS.SetLayeredWindowAttributes (hwndOpaque, 0xFFFFFF, (byte)0, OS.LWA_COLORKEY | OS.LWA_ALPHA); + drawn = false; newProc = new Callback (this, "transparentProc", 4); //$NON-NLS-1$ long /*int*/ newProcAddress = newProc.getAddress (); if (newProcAddress == 0) error (SWT.ERROR_NO_MORE_CALLBACKS); @@ -936,6 +938,10 @@ long /*int*/ transparentProc (long /*int*/ hwnd, long /*int*/ msg, long /*int*/ OS.DeleteObject (hBitmap); } OS.EndPaint (hwnd, ps); + if (!drawn) { + OS.SetLayeredWindowAttributes (hwndOpaque, 0xFFFFFF, (byte)0xFF, OS.LWA_COLORKEY | OS.LWA_ALPHA); + drawn = true; + } return 0; } } |