[vlc-devel] commit: Do not reparent after requesting fullscreen mode ( Rémi Denis-Courmont )

git version control git at videolan.org
Fri Nov 13 17:45:36 CET 2009


vlc | branch: 1.0-bugfix | Rémi Denis-Courmont <remi at remlab.net> | Wed Nov 11 20:20:51 2009 +0200| [eb31e0f623516e81a01600e5ef1237e01fe3cd47] | committer: Rémi Denis-Courmont 

Do not reparent after requesting fullscreen mode

Some (all?) window managers will clear the fullscreen state when the window
reparents. Instead, always reparent first then ask for fullscreen.

This hopefully fixes the taskbar over video bug with KDE 4.3.3.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=eb31e0f623516e81a01600e5ef1237e01fe3cd47
---

 modules/video_output/x11/xcommon.c |   16 +++++-----------
 1 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/modules/video_output/x11/xcommon.c b/modules/video_output/x11/xcommon.c
index 6578fdc..7b83541 100644
--- a/modules/video_output/x11/xcommon.c
+++ b/modules/video_output/x11/xcommon.c
@@ -2169,14 +2169,13 @@ static void ToggleFullScreen ( vout_thread_t *p_vout )
                                      p_vout->p_sys->p_win->base_window,
                                      CWOverrideRedirect,
                                      &attributes);
-
-            /* Make sure the change is effective */
-            XReparentWindow( p_vout->p_sys->p_display,
-                             p_vout->p_sys->p_win->base_window,
-                             DefaultRootWindow( p_vout->p_sys->p_display ),
-                             0, 0 );
         }
 
+        /* Make sure the change is effective */
+        XReparentWindow( p_vout->p_sys->p_display,
+                         p_vout->p_sys->p_win->base_window,
+                         DefaultRootWindow( p_vout->p_sys->p_display ), 0, 0 );
+
         if( p_vout->p_sys->b_net_wm_state_fullscreen )
         {
             XClientMessageEvent event = {
@@ -2215,11 +2214,6 @@ static void ToggleFullScreen ( vout_thread_t *p_vout )
  * as really the wm should be deciding if, on fullscreening of a window
  * the focus should go there or not, so let the wm decided */
 #define APPFOCUS 0
-        /* Make sure the change is effective */
-        XReparentWindow( p_vout->p_sys->p_display,
-                         p_vout->p_sys->p_win->base_window,
-                         DefaultRootWindow( p_vout->p_sys->p_display ),
-                         0, 0 );
 
 #ifdef HAVE_XINERAMA
         if( XineramaQueryExtension( p_vout->p_sys->p_display, &i_d1, &i_d2 ) &&




More information about the vlc-devel mailing list