|
@@ -3709,7 +3709,7 @@ ImGuiContext* ImGui::CreateContext(ImFontAtlas* shared_font_atlas)
|
|
|
void ImGui::DestroyContext(ImGuiContext* ctx)
|
|
|
{
|
|
|
ImGuiContext* prev_ctx = GetCurrentContext();
|
|
|
- if (ctx == NULL)
|
|
|
+ if (ctx == NULL) //-V1051
|
|
|
ctx = prev_ctx;
|
|
|
SetCurrentContext(ctx);
|
|
|
Shutdown();
|
|
@@ -6179,6 +6179,9 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
|
|
|
|
|
|
// SELECT VIEWPORT
|
|
|
// FIXME-VIEWPORT: In the docking/viewport branch, this is the point where we select the current viewport (which may affect the style)
|
|
|
+
|
|
|
+ ImGuiViewportP* viewport = (ImGuiViewportP*)(void*)GetMainViewport();
|
|
|
+ SetWindowViewport(window, viewport);
|
|
|
SetCurrentWindow(window);
|
|
|
|
|
|
// LOCK BORDER SIZE AND PADDING FOR THE FRAME (so that altering them doesn't cause inconsistencies)
|
|
@@ -6292,7 +6295,6 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
|
|
|
|
|
|
// Calculate the range of allowed position for that window (to be movable and visible past safe area padding)
|
|
|
// When clamping to stay visible, we will enforce that window->Pos stays inside of visibility_rect.
|
|
|
- ImGuiViewportP* viewport = (ImGuiViewportP*)(void*)GetMainViewport();
|
|
|
ImRect viewport_rect(viewport->GetMainRect());
|
|
|
ImRect viewport_work_rect(viewport->GetWorkRect());
|
|
|
ImVec2 visibility_padding = ImMax(style.DisplayWindowPadding, style.DisplaySafeAreaPadding);
|
|
@@ -11846,6 +11848,7 @@ static void WindowSettingsHandler_WriteAll(ImGuiContext* ctx, ImGuiSettingsHandl
|
|
|
// [SECTION] VIEWPORTS, PLATFORM WINDOWS
|
|
|
//-----------------------------------------------------------------------------
|
|
|
// - GetMainViewport()
|
|
|
+// - SetWindowViewport() [Internal]
|
|
|
// - UpdateViewportsNewFrame() [Internal]
|
|
|
// (this section is more complete in the 'docking' branch)
|
|
|
//-----------------------------------------------------------------------------
|
|
@@ -11856,6 +11859,11 @@ ImGuiViewport* ImGui::GetMainViewport()
|
|
|
return g.Viewports[0];
|
|
|
}
|
|
|
|
|
|
+void ImGui::SetWindowViewport(ImGuiWindow* window, ImGuiViewportP* viewport)
|
|
|
+{
|
|
|
+ window->Viewport = viewport;
|
|
|
+}
|
|
|
+
|
|
|
// Update viewports and monitor infos
|
|
|
static void ImGui::UpdateViewportsNewFrame()
|
|
|
{
|