فهرست منبع

Backends: DX10, DX11, DX12: Disabled DXGI's Alt+Enter default behavior on secondary viewports. (#4350)

Removed use of DXGI_MWA_NO_PRINT_SCREEN from original PR.
David Maas 4 سال پیش
والد
کامیت
15c88c4941
4فایلهای تغییر یافته به همراه6 افزوده شده و 0 حذف شده
  1. 1 0
      backends/imgui_impl_dx10.cpp
  2. 1 0
      backends/imgui_impl_dx11.cpp
  3. 2 0
      backends/imgui_impl_dx12.cpp
  4. 2 0
      docs/CHANGELOG.txt

+ 1 - 0
backends/imgui_impl_dx10.cpp

@@ -708,6 +708,7 @@ static void ImGui_ImplDX10_CreateWindow(ImGuiViewport* viewport)
 
     IM_ASSERT(vd->SwapChain == nullptr && vd->RTView == nullptr);
     bd->pFactory->CreateSwapChain(bd->pd3dDevice, &sd, &vd->SwapChain);
+    bd->pFactory->MakeWindowAssociation(hwnd, DXGI_MWA_NO_ALT_ENTER | DXGI_MWA_NO_WINDOW_CHANGES); // Disable e.g. Alt+Enter
 
     // Create the render target
     if (vd->SwapChain)

+ 1 - 0
backends/imgui_impl_dx11.cpp

@@ -738,6 +738,7 @@ static void ImGui_ImplDX11_CreateWindow(ImGuiViewport* viewport)
             break;
     }
     IM_ASSERT(SUCCEEDED(hr));
+    bd->pFactory->MakeWindowAssociation(hwnd, DXGI_MWA_NO_ALT_ENTER | DXGI_MWA_NO_WINDOW_CHANGES); // Disable e.g. Alt+Enter
 
     // Create the render target
     if (vd->SwapChain != nullptr)

+ 2 - 0
backends/imgui_impl_dx12.cpp

@@ -1087,6 +1087,8 @@ static void ImGui_ImplDX12_CreateWindow(ImGuiViewport* viewport)
     IDXGISwapChain1* swap_chain = nullptr;
     res = dxgi_factory->CreateSwapChainForHwnd(vd->CommandQueue, hwnd, &sd1, nullptr, nullptr, &swap_chain);
     IM_ASSERT(res == S_OK);
+    res = dxgi_factory->MakeWindowAssociation(hwnd, DXGI_MWA_NO_ALT_ENTER | DXGI_MWA_NO_WINDOW_CHANGES); // Disable e.g. Alt+Enter
+    IM_ASSERT(res == S_OK);
 
     dxgi_factory->Release();
 

+ 2 - 0
docs/CHANGELOG.txt

@@ -88,6 +88,8 @@ Docking+Viewports Branch:
 - Viewports: DestroyContext() does not call DestroyPlatformWindows() anymore at
   it assumed to be unnecessary as backensd should have done it and we check that
   backends have been shutdown since 1.90.4. Changed into asserts. (#7175, #8945)
+- Backends: DX10, DX11, DX12: Disabled DXGI's Alt+Enter default behavior on secondary
+  viewports managed by the backend. (#4350) [@PathogenDavid]
 - Backends: Vulkan: Added ImGui_ImplVulkanH_GetWindowDataFromViewport() accessor/helper.
   (#8946, #8940) [@olivier-gerard]