Menu

#56 Set[In]Visible in Interface::PlayMovie

GemRB Main Engine
closed-fixed
nobody
GamePlay (136)
5
2005-11-06
2005-09-22
Waywocket
No

Interface::PlayMovie should make the current window
invisible when playing, and then visible again when
it's finished.
To this end, it calls SetInvisible for the first window
stored: windows[0], and then SetVisible later. I'm told
this is the root window, so making it invisible should
hide all windows, and then making it visible should
bring them back.
The problem arises when making the window[s] visible
again. SetVisible brings the window in question to the
top, so after playing the movie we now have the root
window at the top, rather than the window that was on
top before playing the movie.
It's possible to workaround this by altering the
GUIScript to manually make the desired window visible,
thus setting it back on top. I've also hacked PlayMovie
to use not windows[0], but the window whose WindowID is
0, since this is the correct window, however I've been
informed that this is incorrect since the root window
*should* be hidden.
The correct fix therefore might be to detect that the
root window is being hidden and store the top window,
then detect when the root window is being made visible
and set the stored window back on top.

Discussion

  • Laszlo Toth

    Laszlo Toth - 2005-10-25

    Logged In: YES
    user_id=885460

    Probably it would be better to add a flag to disable
    rendering of the windows completely, then re-enable it (and
    invalidating all of them).
    I will do this by supporting the -1 WindowID (all windows)
    for Invalidate, etc.

     
  • Laszlo Toth

    Laszlo Toth - 2005-10-26

    Logged In: YES
    user_id=885460

    Ok, i think i've fixed this by removing the code which
    disabled/reenabled the windows and called RedrawAll() in the
    end. Which would invalidate all windows thus forcing a redraw.
    Apparently no need to disable the windows.

     
  • Laszlo Toth

    Laszlo Toth - 2005-11-06
    • labels: --> GamePlay
    • milestone: --> GemRB Main Engine
    • status: open --> closed-fixed
     

Log in to post a comment.