зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 1f44d19bb3a9 (bug 1891063) for causing bc failures on browser_test_autoscrolling_in_extension_popup_window.js CLOSED TREE
This commit is contained in:
Родитель
89cce877be
Коммит
1a068c02b8
|
@ -8299,10 +8299,35 @@ void nsWindow::PickerClosed() {
|
|||
}
|
||||
|
||||
bool nsWindow::WidgetTypeSupportsAcceleration() {
|
||||
if (IsPopup() && DeviceManagerDx::Get()->IsWARP()) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
// We don't currently support using an accelerated layer manager with
|
||||
// transparent windows so don't even try. I'm also not sure if we even
|
||||
// want to support this case. See bug 593471.
|
||||
//
|
||||
// Windows' support for transparent accelerated surfaces isn't great.
|
||||
// Some possible approaches:
|
||||
// - Readback the data and update it using
|
||||
// UpdateLayeredWindow/UpdateLayeredWindowIndirect
|
||||
// This is what WPF does. See
|
||||
// CD3DDeviceLevel1::PresentWithGDI/CD3DSwapChainWithSwDC in WpfGfx. The
|
||||
// rationale for not using IDirect3DSurface9::GetDC is explained here:
|
||||
// https://web.archive.org/web/20160521191104/https://blogs.msdn.microsoft.com/dwayneneed/2008/09/08/transparent-windows-in-wpf/
|
||||
// - Use D3D11_RESOURCE_MISC_GDI_COMPATIBLE, IDXGISurface1::GetDC(),
|
||||
// and UpdateLayeredWindowIndirect.
|
||||
// This is suggested here:
|
||||
// https://docs.microsoft.com/en-us/archive/msdn-magazine/2009/december/windows-with-c-layered-windows-with-direct2d
|
||||
// but might have the same problem that IDirect3DSurface9::GetDC has.
|
||||
// - Creating the window with the WS_EX_NOREDIRECTIONBITMAP flag and use
|
||||
// DirectComposition.
|
||||
// Not supported on Win7.
|
||||
// - Using DwmExtendFrameIntoClientArea with negative margins and something
|
||||
// to turn off the glass effect.
|
||||
// This doesn't work when the DWM is not running (Win7)
|
||||
//
|
||||
// Also see bug 1150376, D3D11 composition can cause issues on some devices
|
||||
// on Windows 7 where presentation fails randomly for windows with drop
|
||||
// shadows.
|
||||
return mTransparencyMode != TransparencyMode::Transparent &&
|
||||
!(IsPopup() && DeviceManagerDx::Get()->IsWARP());
|
||||
}
|
||||
|
||||
bool nsWindow::DispatchTouchEventFromWMPointer(
|
||||
|
|
Загрузка…
Ссылка в новой задаче