tags 434243 + patch
thanks
OoO Peu avant le début de l'après-midi du samedi 27 octobre 2007, vers
13:03, je disais:
Second, I use fvwm. Without Xinerama, vlc is able to do full screen
without a problem. With Xinerama, I still get the title bar. Without
Xinerama, the title bar is present but hidden (not visible). With
Xinerama, I suppose the title bar is visible because the window is first
created, then moved (xcommon.c:1656).
Moreover, the window has no title, no class, no resource name. It is
therefore not easy to ask the window manager to hide title bar. I have
tried to set option 'video-title' with no luck (I have tried with both
video-deco equal to 1 and to 0). The block at xcommon.c:1109 should be
executed even when we are using fullscreen mode (and even if there is no
decoration). The no-decoration part too.
Here is a patch that makes me happy with this point:
diff -Naur vlc-0.8.6.c/modules/video_output/x11/xcommon.c vlc-0.8.6.c.new/modules/video_output/x11/xcommon.c
--- vlc-0.8.6.c/modules/video_output/x11/xcommon.c 2007-06-16 16:25:11.0 +0200
+++ vlc-0.8.6.c.new/modules/video_output/x11/xcommon.c 2007-10-27 13:42:58.0 +0200
@@ -1079,54 +1079,52 @@
xwindow_attributes );
if( !p_vout-b_fullscreen )
-{
-/* Set window manager hints and properties: size hints, command,
- * window's name, and accepted protocols */
-XSetWMNormalHints( p_vout-p_sys-p_display,
- p_win-base_window, xsize_hints );
-XSetCommand( p_vout-p_sys-p_display, p_win-base_window,
- p_vout-p_vlc-ppsz_argv, p_vout-p_vlc-i_argc );
-
-if( !var_GetBool( p_vout, video-deco) )
-{
-Atom prop;
-mwmhints_t mwmhints;
-
-mwmhints.flags = MWM_HINTS_DECORATIONS;
-mwmhints.decorations = False;
-
-prop = XInternAtom( p_vout-p_sys-p_display, _MOTIF_WM_HINTS,
-False );
-
-XChangeProperty( p_vout-p_sys-p_display,
- p_win-base_window,
- prop, prop, 32, PropModeReplace,
- (unsigned char *)mwmhints,
- PROP_MWM_HINTS_ELEMENTS );
-}
-else
-{
- var_Get( p_vout, video-title, val );
- if( !val.psz_string || !*val.psz_string )
- {
-XStoreName( p_vout-p_sys-p_display, p_win-base_window,
+ {
+ /* Set window manager hints and properties: size hints, command,
+ * window's name, and accepted protocols */
+ XSetWMNormalHints( p_vout-p_sys-p_display,
+ p_win-base_window, xsize_hints );
+ XSetCommand( p_vout-p_sys-p_display, p_win-base_window,
+ p_vout-p_vlc-ppsz_argv, p_vout-p_vlc-i_argc );
+ }
+
+ var_Get( p_vout, video-title, val );
+ if( !val.psz_string || !*val.psz_string )
+ {
+ XStoreName( p_vout-p_sys-p_display, p_win-base_window,
#ifdef MODULE_NAME_IS_x11
-VOUT_TITLE (X11 output)
+ VOUT_TITLE (X11 output)
#elif defined(MODULE_NAME_IS_glx)
-VOUT_TITLE (GLX output)
+ VOUT_TITLE (GLX output)
#else
-VOUT_TITLE (XVideo output)
+ VOUT_TITLE (XVideo output)
#endif
- );
-}
-else
-{
-XStoreName( p_vout-p_sys-p_display,
- p_win-base_window, val.psz_string );
-}
-if( val.psz_string ) free( val.psz_string );
-}
-}
+ );
+ }
+ else
+ {
+ XStoreName( p_vout-p_sys-p_display,
+ p_win-base_window, val.psz_string );
+ }
+ if( val.psz_string ) free( val.psz_string );
+
+ if( !var_GetBool( p_vout, video-deco) || p_vout-b_fullscreen)
+ {
+ Atom prop;
+ mwmhints_t mwmhints;
+
+ mwmhints.flags = MWM_HINTS_DECORATIONS;
+ mwmhints.decorations = False;
+
+ prop = XInternAtom( p_vout-p_sys-p_display, _MOTIF_WM_HINTS,
+False );
+
+ XChangeProperty( p_vout-p_sys-p_display,
+ p_win-base_window,
+ prop, prop, 32, PropModeReplace,
+ (unsigned char *)mwmhints,
+ PROP_MWM_HINTS_ELEMENTS );
+ }
}
else
{
I have left XSetWMNormalHints and XSet inside the conditional block
because fullscreen does not work one time out of two if they are called.
The window is still created on the wrong screen then moved. I think
since we create a new window each time we go full screen, the creation
should be done in the right place and we should not have to move
it.
--
IT'S POTATO, NOT POTATOE
IT'S POTATO, NOT POTATOE
IT'S POTATO, NOT POTATOE
-+- Bart Simpson on chalkboard in episode 7F01