ValveSoftware / openvr

OpenVR SDK
http://steamvr.com
BSD 3-Clause "New" or "Revised" License
6.07k stars 1.28k forks source link

ShowMessageOverlay() is not modal and is not shown when the dashboard is active. #348

Closed matzman666 closed 7 years ago

matzman666 commented 7 years ago

I have two issues with vr::VROverlay()->ShowMessageOverlay():

  1. The message overlay is not modal, therefore the user is able to (accidentally) hide the message overlay by selecting another dashboard overlay, going into the settings menu, or by pressing the menu button on the controller. The problem is that ShowMessageOverlay() is still blocking the calling program since the only way to finish the call to ShowMessageOverlay() is by pressing one of the buttons of the overlay. In my opinion ShowMessageOverlay() should either return that no button was pressed, or force the user to press a button (preferred).
  2. When ShowMessageOverlay() was called while the dashboard is visible, then no message overlay is shown. The user has to close the dashboard and then open it again for the message overlay to be shown. The problem is that the user may have no reason to open the dashboard a second time soon and the message overlay may go unnoticed for a long time. In the meantime the call to ShowMessageOverlay() is still not finished and blocks the calling program.
eddieparker commented 7 years ago

Thanks for the feedback. This is fixed, here: http://steamcommunity.com/games/250820/announcements/detail/276242807872830740

The dialog is now modal. The dialog has to be dismissed by a user, or the owning application has to be killed, before you can return to a scene.

Let me know if you have any other feedback or bugs crop up from this. Cheers.

matzman666 commented 7 years ago

Thanks for looking into this issue.

However, I cannot notice any difference. I am running SteamVR beta 1483641307, but the message overlay is still not modal but can be hidden by opening another overlay and it is still not shown when the dashboard is active. I suppose I don't need to change anything on my side, do I?

eddieparker commented 7 years ago

You shouldn't have to change anything on your side. If you try to go back to your application using the system menu, does it prevent you from doing so?

The message overlay shouldn't be hidden by another overlay - it has it's own button on the dashboard, and while focus may be pulled to the other overlay, you'll have to deal with the message overlay before exiting the dashboard. Is this what you're seeing?

eddieparker commented 7 years ago

Hrmm, just tested this on the Beta, and it looks like my changes didn't make it out last time someone merged.

I'll go yell at someone see what went wrong: should be out in the next beta.

eddieparker commented 7 years ago

Got it sorted. Check out http://steamcommunity.com/games/250820/announcements/detail/276242807888874179 and feel free to give feedback.

matzman666 commented 7 years ago

The message overlay is now modal and working correctly, so thx.

There is one minor issue I noticed. When the dashboard is already shown when the message overlay appears and the users dismisses the overlay, then the dashboard is closed. Users may not like this when they were not finished with whatever they were doing in the dashboard.

BenWoodford commented 6 years ago

In an interesting turn of events, the message box now hides the calling overlay. Either that or my implementation is very, very wonky. It may be that this is the intended functionality, but if so it seems unintuitive. Seems like it takes over as the dashboard overlay perhaps? A better solution would be an overlay that’s spawned in front of the dashboard, rather than one that hides whatever you were doing in favour of a rather small box.

The closing dashboard thing is also still occurring. It can be mitigated on our end by calling ShowDashboard when the user chooses an option but would be nice if it was done automatically.