<p>Hi,<br>Current implementation of directx video output modules (directx, direct3d, glwin32) leaves main interface window visible when the user toggles fullscreen mode. This causes two problems: (a) the user sees empty main interface window when he switches to another application or cycles through existing windows using Alt-Tab and (b) main interface window overlaps video window when he toggles "video-on-top" option while fullscreen mode is active. In order to fix both these issues, we should hide main interface window when entering fullscreen mode and restore it when leaving fullscreen mode. But some GUI modules (in particular qt4 module) may need to call show() for main interface window in order to apply "video-on-top" flag, so in order to avoid condition (b) described earlier we need also to hide VOUT_SET_STAY_ON_TOP queries from main interface window while we are in fullscreen mode and update "video-on-top" status for main window when we are leaving fullscreen mode.
</p>
<p>I have also noticed that there is a code in src/video_output/vout_intf.c:FullscreenCallback (line 1151), which sets video-on-top variable to false, when entering fullscreen mode. I think this code should be removed, there is no point in disabling video-on-top option, as the user may change this option in fullscreen mode anyway (through mouse / hotkey controls, at least). So video_output modules should be aware that video-on-top variable may be toggled in fullscreen mode and should handle such situations appropriately. I'm developing under win32/cygwin, so I haven't checked if similar reasoning applies to X11 module or any of the other video output modules. It seems that at least wingdi output module has the same problem, but it's code is somewhat different from DirectX/Direct3D/Win32 OpenGL code, so I'll provide patch for wingdi module later. In the meantime, I think it is safe to leave that old code as it is.
</p>
<p>Two patches are attached to this message: vlc-vout-dx-fullscreen.patch is a version which fixes fullscreen mode for DirectX module only, it is intended only to demonstrate what changes are being applied to current version. Another one - 
vlc-vout-dx-fullscreen2.patch, does essentially the same, only it fixes all three modules (directx, direct3d and opengl) and refactors some common code for toggling fullscreen mode into Win32ToggleFullscreen function, to remove code duplication between those modules.
<br></p>