Bug 1544074 - Remove WS_EX_LAYERED and WS_EX_TRANSPARENT r=mattwoodrow a=pascalc
authorsotaro <sotaro.ikeda.g@gmail.com>
Mon, 15 Apr 2019 01:24:26 +0000
changeset 526194 cd1e0b429eff6abc69f7aa0b547e06b8afaa17a4
parent 526193 904db16056b425afb588f34fa480cec86d618335
child 526195 5d798451164267c5f4a4b69684361bc028d3d07a
push id2032
push userffxbld-merge
push dateMon, 13 May 2019 09:36:57 +0000
treeherdermozilla-release@455c1065dcbe [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmattwoodrow, pascalc
bugs1544074, 1525183
milestone67.0
Bug 1544074 - Remove WS_EX_LAYERED and WS_EX_TRANSPARENT r=mattwoodrow a=pascalc Bug 1525183 imported chromium workaround. But it caused a device specific regression. The change removes WS_EX_LAYERED and WS_EX_TRANSPARENT, but it keeps WS_EX_NOREDIRECTIONBITMAP, since it is necessary for memory usage reduction. Differential Revision: https://phabricator.services.mozilla.com/D27461
widget/windows/WinCompositorWindowThread.cpp
--- a/widget/windows/WinCompositorWindowThread.cpp
+++ b/widget/windows/WinCompositorWindowThread.cpp
@@ -154,18 +154,17 @@ WinCompositorWnds WinCompositorWindowThr
         // as parent window, so instead create it with a temporary placeholder
         // parent. Its parent is set as main window in UI process.
         initialParentWnd =
             ::CreateWindowEx(WS_EX_TOOLWINDOW, kClassNameCompositorInitalParent,
                              nullptr, WS_POPUP | WS_DISABLED, 0, 0, 1, 1,
                              nullptr, 0, GetModuleHandle(nullptr), 0);
 
         compositorWnd = ::CreateWindowEx(
-            WS_EX_NOPARENTNOTIFY | WS_EX_LAYERED | WS_EX_TRANSPARENT |
-                WS_EX_NOREDIRECTIONBITMAP,
+            WS_EX_NOPARENTNOTIFY | WS_EX_NOREDIRECTIONBITMAP,
             kClassNameCompositor, nullptr,
             WS_CHILDWINDOW | WS_DISABLED | WS_VISIBLE, 0, 0, 1, 1,
             initialParentWnd, 0, GetModuleHandle(nullptr), 0);
       });
 
   Loop()->PostTask(runnable.forget());
 
   task.Wait();