When opening AllScripts application SCM, users are getting a black screen/ghost window and unable to work when they have more than 2 monitors. We try setting it to High DPI, but the issue comes back.

When opening AllScripts application SCM, users are getting a black screen/ghost window and unable to work when they have more than 2 monitors. We try setting it to High DPI, but the issue comes back.

book

Article ID: CTX310752

calendar_today

Updated On:

Description

Cx has an Allscripts app called SCM and when perform a specific function in the app which opens up a second window. When they close this second window, it leaves a black box/ghost window. 

Resolution

Please ask Citrix for two private hotfixes for this issue referencing CVADHELP-16956

This behavior coming from the way we use WIN32 APIs to check the visibility would have to be treated as "By Design".

The reason the API still indicates the window is visible is simply because the app sends WM_REDRAW message to the dialog box with FALSE to stop drawing and not restoring it back by setting WM_REDRAW with TRUE before closing the window (https://docs.microsoft.com/en-us/windows/win32/gdi/wm-setredraw)

Description: Users are getting a black screen/ghost window in an AllScripts app

According to MS, the only way to detect the hidden window state when in WS_REDRAW(FALSE) is to handle AA event EVENT_OBJECT_HIDE. Here we assign a new window property to make sure we can capture this state from seamless engine.

Problem Cause

The reason the API still indicates the window is visible is simply because the app sends WM_REDRAW message to the dialog box with FALSE to stop drawing and not restoring it back by setting WM_REDRAW with TRUE before closing the window (https://docs.microsoft.com/en-us/windows/win32/gdi/wm-setredraw)

Root Cause: WS_REDRAW (FALSE) is assigned but the window is hidden. In this special condition, we cannot tell if the window is visible to the user or not because we blindly regard windows with WS_REDRAW(FALSE) as visible.