From 329ebc2d05671fec558d8e1039393b73d20d9db0 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 6 Jan 2017 12:34:36 +0000 Subject: [PATCH] Don't allow the program to close while a global hook is active --- renderdocui/Code/Core.cs | 3 +++ renderdocui/Windows/Dialogs/CaptureDialog.cs | 4 ++++ renderdocui/Windows/MainWindow.cs | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/renderdocui/Code/Core.cs b/renderdocui/Code/Core.cs index 2056f557e..1eaa4a83f 100644 --- a/renderdocui/Code/Core.cs +++ b/renderdocui/Code/Core.cs @@ -59,6 +59,7 @@ namespace renderdocui.Code private bool m_LogLocal = false; private bool m_LogLoaded = false; + private bool m_GlobalHookEnabled = false; private FileSystemWatcher m_LogWatcher = null; @@ -119,6 +120,8 @@ namespace renderdocui.Code public string LogFileName { get { return m_LogFile; } set { if (LogLoaded) m_LogFile = value; } } public bool IsLogLocal { get { return m_LogLocal; } set { m_LogLocal = value; } } + public bool GlobalHookEnabled { get { return m_GlobalHookEnabled; } set { m_GlobalHookEnabled = value; } } + public FetchFrameInfo FrameInfo { get { return m_FrameInfo; } } public APIProperties APIProps { get { return m_APIProperties; } } diff --git a/renderdocui/Windows/Dialogs/CaptureDialog.cs b/renderdocui/Windows/Dialogs/CaptureDialog.cs index 16992f32f..619226358 100644 --- a/renderdocui/Windows/Dialogs/CaptureDialog.cs +++ b/renderdocui/Windows/Dialogs/CaptureDialog.cs @@ -928,6 +928,8 @@ namespace renderdocui.Windows.Dialogs toggleGlobalHook.Enabled = false; + m_Core.GlobalHookEnabled = false; + if (toggleGlobalHook.Checked) { if(!Helpers.IsElevated) @@ -1124,6 +1126,8 @@ namespace renderdocui.Windows.Dialogs logfile = m_Core.TempLogFilename(logfile); StaticExports.StartGlobalHook(exe, logfile, GetSettings().Options); + + m_Core.GlobalHookEnabled = true; } else { diff --git a/renderdocui/Windows/MainWindow.cs b/renderdocui/Windows/MainWindow.cs index 74ca789ea..8245a8d26 100644 --- a/renderdocui/Windows/MainWindow.cs +++ b/renderdocui/Windows/MainWindow.cs @@ -1709,6 +1709,14 @@ namespace renderdocui.Windows } } + if (m_Core.GlobalHookEnabled) + { + MessageBox.Show("Cannot close RenderDoc while global hook is active.", "Global hook active", + MessageBoxButtons.OK, MessageBoxIcon.Error); + e.Cancel = true; + return; + } + if (!PromptCloseLog()) { e.Cancel = true;