From c351d29392df4d69c7beae0ba41878e6335e3614 Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 19 Nov 2008 20:19:25 +0000 Subject: Factor common code like -wid handling, vo_gc creation etc. out into x11_common.c git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27961 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/x11_common.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'libvo/x11_common.c') diff --git a/libvo/x11_common.c b/libvo/x11_common.c index af603c3e2c..883ada7715 100644 --- a/libvo/x11_common.c +++ b/libvo/x11_common.c @@ -1269,6 +1269,23 @@ void vo_x11_create_vo_window(XVisualInfo *vis, int x, int y, Colormap col_map, const char *classname, const char *title) { + XGCValues xgcv; + if (WinID >= 0) { + vo_window = WinID ? (Window)WinID : mRootWin; + if (col_map != CopyFromParent) { + unsigned long xswamask = CWColormap; + XSetWindowAttributes xswa; + xswa.colormap = col_map; + XUnmapWindow(mDisplay, vo_window); + XChangeWindowAttributes(mDisplay, vo_window, xswamask, &xswa); + XMapWindow(mDisplay, vo_window); + } + if (WinID) vo_x11_update_geometry(); + vo_x11_selectinput_witherr(mDisplay, vo_window, + StructureNotifyMask | KeyPressMask | PointerMotionMask | + ButtonPressMask | ButtonReleaseMask | ExposureMask); + goto final; + } if (vo_window == None) { XSizeHints hint; XEvent xev; @@ -1304,6 +1321,12 @@ void vo_x11_create_vo_window(XVisualInfo *vis, int x, int y, vo_x11_nofs_sizepos(vo_dx, vo_dy, width, height); if (!!vo_fs != !!(flags & VOFLAG_FULLSCREEN)) vo_x11_fullscreen(); +final: + if (vo_gc != None) + XFreeGC(mDisplay, vo_gc); + vo_gc = XCreateGC(mDisplay, vo_window, GCForeground, &xgcv); + XSync(mDisplay, False); + vo_mouse_autohide = 1; } void vo_x11_clearwindow_part(Display * mDisplay, Window vo_window, -- cgit v1.2.3