From 13f9461e99398f4080bf0fdd68a03f57a5427002 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hentschel?= Date: Fri, 13 Jul 2018 19:49:40 +0200 Subject: [PATCH] winedbg: Check for visible window station before displaying crash dialog. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=35928 Signed-off-by: André Hentschel Signed-off-by: Alexandre Julliard --- programs/winedbg/crashdlg.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/programs/winedbg/crashdlg.c b/programs/winedbg/crashdlg.c index a925378873e..cda2642dfc9 100644 --- a/programs/winedbg/crashdlg.c +++ b/programs/winedbg/crashdlg.c @@ -48,6 +48,20 @@ int msgbox_res_id(HWND hwnd, UINT textid, UINT captionid, UINT type) return IDCANCEL; } +static BOOL is_visible(void) +{ + USEROBJECTFLAGS flags; + HWINSTA winstation; + + if (!(winstation = GetProcessWindowStation())) + return FALSE; + + if (!(GetUserObjectInformationA(winstation, UOI_FLAGS, &flags, sizeof(flags), NULL))) + return FALSE; + + return flags.dwFlags & WSF_VISIBLE; +} + static WCHAR *get_program_name(HANDLE hProcess) { WCHAR image_name[MAX_PATH]; @@ -362,7 +376,7 @@ int display_crash_dialog(void) /* dbg_curr_process->handle is not set */ HANDLE hProcess; - if (!DBG_IVAR(ShowCrashDialog)) + if (!DBG_IVAR(ShowCrashDialog) || !is_visible()) return TRUE; hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dbg_curr_pid);