Hello, I see a serious problem with the V-Ray messages window (V-Ray 5, hotfix 2). When it opens because of a warning/error at roughly the same time as a message box from my plugin then 3ds max appears to be frozen. The messages window pushes the modal message box behind other windows or prevents it even from being drawn at all. The user isn't aware that he can not operate 3ds max because of a modal dialog, because he can not even see the dialog. So the user ends up thinking my plugin froze 3ds max. Only closing the V-Ray messages window helps, which is not obvious to the user, because the messages window may be minimized or out of site on another screen. Since the messages windows does not behave like a modal dialog usually the user also does not expect that closing it would help at all.
The problem can be reproduced using 2 lines of MAXScript (I see this in a 3ds max C++ plugin, this is just the easiest way to demonstrate it):
The result varies, sometimes you can not see the message box at all until you close the message window or the message box is pushed behind some other window like the Framebuffer or the Script Editor. The weird thing is that V-Ray appears to delay the opening of the messages window until the modal dialog is shown. So you can do something else between the 2 lines of code (e.g. sleep 3) and the problem will still occur. This seems to be what makes it so likely to occur. This does not just happen when the windows want to open at the exact same time. This problem already somewhat exists in V-Ray Next, but there the message box was just pushed behind the message window or framebuffer and still accessible. In V-Ray 5 you can not see or move the modal dialog to the front anymore.
The problem very likely to occur when using my PSD exporter (psd-manager), because:
My guess is that it has something to do with the V-Ray message window running in another thread and this conflicting with the 3ds max window message loop. I don't use any threads. I already tried a lot of things like different parent windows for the modal dialog. The problem seems to be on the V-Ray side.
Daniel
The problem can be reproduced using 2 lines of MAXScript (I see this in a 3ds max C++ plugin, this is just the easiest way to demonstrate it):
Code:
-[B]- close vray message window before trying this, execute all lines at once vrayShowMsgLogWindow() sleep 3 -- optional messageBox "When you see me everything is awesome!"[/B]
The problem very likely to occur when using my PSD exporter (psd-manager), because:
- psd-manager needs to ask the user to overwrite a file: yes/no via a message box at the beginning of the rendering. (very likely)
- V-Ray usually prints some warning at the start of a render (also very likely)
- V-Ray messages window is set to be show on warnings/errors by default
- V-Ray messages window is currently closed (also very likely, because users click it away because it takes up screen space)
My guess is that it has something to do with the V-Ray message window running in another thread and this conflicting with the 3ds max window message loop. I don't use any threads. I already tried a lot of things like different parent windows for the modal dialog. The problem seems to be on the V-Ray side.
Daniel
Comment