I was looking into a problem regarding the MoviePlayer / LoadingScreen and noticed that the Engine may hang within FWindowsWindow::ReshapeWindow(). The OS call “MoveWindow()” to be exact will block indefinitely. It seems as if too many calls to MoveWindow() make this happen . Maybe too many windows messages being queued up? I reduced the number of calls to MoveWindow() by checking for position or size differences. I put the code snippet below. Do you think this is a valid solution? Will this patch or something similar be applied to the Engine source?
Marc
const int32 OldWidth = WindowInfo.rcClient.right - WindowInfo.rcClient.left;
const int32 OldHeight = WindowInfo.rcClient.bottom - WindowInfo.rcClient.top;
if( NewX != WindowInfo.rcClient.left || NewY != WindowInfo.rcClient.top || NewWidth != OldWidth || NewHeight != OldHeight )
{
const bool bRepaint = true;
::MoveWindow( HWnd, WindowX, WindowY, NewWidth, NewHeight, bRepaint );
}