浏览代码

Viewports: Closing a viewport via OS/platform means (e.g. OS close button or task-bar menu), mark all windows in this viewport as closed.

ocornut 2 年之前
父节点
当前提交
e4aeef4b9f
共有 2 个文件被更改,包括 6 次插入8 次删除
  1. 2 0
      docs/CHANGELOG.txt
  2. 4 8
      imgui.cpp

+ 2 - 0
docs/CHANGELOG.txt

@@ -151,6 +151,8 @@ Other changes:
 
 Docking+Viewports Branch:
 
+- Viewports: Closing a viewport via OS/platform means (e.g. OS close button or task-bar menu),
+  mark all windows in this viewport as closed.
 - Docking: Fixed dragging from title-bar empty space (regression from 1.88 related to
   keeping ID alive when calling low-level ButtonBehavior() directly). (#5181, #2645)
 - Docking: [Internal] DockBuilderDockWindow() API calls don't clear docking order

+ 4 - 8
imgui.cpp

@@ -7227,16 +7227,12 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
         if (want_focus && window == g.NavWindow)
             NavInitWindow(window, false); // <-- this is in the way for us to be able to defer and sort reappearing FocusWindow() calls
 
-        // Close requested by platform window
+        // Close requested by platform window (apply to all windows in this viewport)
         if (p_open != NULL && window->Viewport->PlatformRequestClose && window->Viewport != GetMainViewport())
         {
-            if (!window->DockIsActive || window->DockTabIsVisible)
-            {
-                window->Viewport->PlatformRequestClose = false;
-                g.NavWindowingToggleLayer = false; // Assume user mapped PlatformRequestClose on ALT-F4 so we disable ALT for menu toggle. False positive not an issue.
-                IMGUI_DEBUG_LOG_VIEWPORT("[viewport] Window '%s' PlatformRequestClose\n", window->Name);
-                *p_open = false;
-            }
+            IMGUI_DEBUG_LOG_VIEWPORT("[viewport] Window '%s' closed by PlatformRequestClose\n", window->Name);
+            *p_open = false;
+            g.NavWindowingToggleLayer = false; // Assume user mapped PlatformRequestClose on ALT-F4 so we disable ALT for menu toggle. False positive not an issue. // FIXME-NAV: Try removing.
         }
 
         // Title bar