From 032700d0df7848c28d78c315f2f5ef661e28fecc Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 22 May 2015 21:47:41 +0200 Subject: [PATCH] Handle the case where the active window gets removed leaving us stuck * When multiple windows are around if the active window gets removed we need to be careful when reassigning the active window. --- renderdoc/core/core.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/renderdoc/core/core.cpp b/renderdoc/core/core.cpp index 1816b0ff7..a49e9df41 100644 --- a/renderdoc/core/core.cpp +++ b/renderdoc/core/core.cpp @@ -825,9 +825,18 @@ void RenderDoc::RemoveFrameCapturer(void *dev, void *wnd) if(m_ActiveWindow == dw) { if(m_WindowFrameCapturers.size() == 1) + { m_ActiveWindow = DeviceWnd(); + } else - m_ActiveWindow = m_WindowFrameCapturers.begin()->first; + { + auto it = m_WindowFrameCapturers.begin(); + // active window could be the first in our list, move + // to second (we know from above there are at least 2) + if(m_ActiveWindow == it->first) + it++; + m_ActiveWindow = it->first; + } } m_WindowFrameCapturers.erase(it);