[vlc-devel] commit: XCB/window: hackish implementation of video wallpaper ( Rémi Denis-Courmont )

git version control git at videolan.org
Sat Dec 26 21:08:14 CET 2009


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sat Dec 26 22:07:52 2009 +0200| [103cd865cc6aa2b19f1fd1adbed8d13c1d8c5543] | committer: Rémi Denis-Courmont 

XCB/window: hackish implementation of video wallpaper

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

 modules/video_output/xcb/window.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/modules/video_output/xcb/window.c b/modules/video_output/xcb/window.c
index 52c447a..05591ea 100644
--- a/modules/video_output/xcb/window.c
+++ b/modules/video_output/xcb/window.c
@@ -330,6 +330,12 @@ static int Open (vlc_object_t *obj)
     /* Make the window visible */
     xcb_map_window (conn, window);
 
+    if (var_CreateGetBool (obj, "video-wallpaper"))
+    {
+        vout_window_SetState (wnd, VOUT_WINDOW_STATE_BELOW);
+        vout_window_SetFullScreen (wnd, true);
+    }
+
     /* Create the event thread. It will dequeue all events, so any checked
      * request from this thread must be completed at this point. */
     if ((p_sys->keys != NULL)
@@ -494,8 +500,13 @@ static int Control (vout_window_t *wnd, int cmd, va_list ap)
         }
 
         case VOUT_WINDOW_SET_FULLSCREEN:
-            set_wm_state (wnd, va_arg (ap, int), p_sys->wm_state_fullscreen);
+        {
+            bool fs = va_arg (ap, int);
+            if (!fs && var_GetBool (wnd, "video-wallpaper"))
+                return VLC_EGENERIC;
+            set_wm_state (wnd, fs, p_sys->wm_state_fullscreen);
             break;
+        }
 
         default:
             msg_Err (wnd, "request %d not implemented", cmd);




More information about the vlc-devel mailing list