summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/video_out/video_out_vidix.c6
-rw-r--r--src/video_out/video_out_xshm.c6
-rw-r--r--src/video_out/video_out_xv.c6
-rw-r--r--src/video_out/x11osd.c13
4 files changed, 19 insertions, 12 deletions
diff --git a/src/video_out/video_out_vidix.c b/src/video_out/video_out_vidix.c
index 1f7fffae8..dbfa876fa 100644
--- a/src/video_out/video_out_vidix.c
+++ b/src/video_out/video_out_vidix.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: video_out_vidix.c,v 1.62 2004/05/06 03:09:32 miguelfreitas Exp $
+ * $Id: video_out_vidix.c,v 1.63 2004/05/09 21:05:34 miguelfreitas Exp $
*
* video_out_vidix.c
*
@@ -280,8 +280,10 @@ static void vidix_clean_output_area(vidix_driver_t *this) {
XSetForeground(this->display, this->gc, this->colourkey);
XFillRectangle(this->display, this->drawable, this->gc, this->sc.output_xoffset, this->sc.output_yoffset, this->sc.output_width, this->sc.output_height);
- if (this->xoverlay)
+ if (this->xoverlay) {
x11osd_resize (this->xoverlay, this->sc.gui_width, this->sc.gui_height);
+ this->ovl_changed = 1;
+ }
XFlush(this->display);
diff --git a/src/video_out/video_out_xshm.c b/src/video_out/video_out_xshm.c
index 62dc26032..68629a183 100644
--- a/src/video_out/video_out_xshm.c
+++ b/src/video_out/video_out_xshm.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: video_out_xshm.c,v 1.131 2004/05/06 03:09:32 miguelfreitas Exp $
+ * $Id: video_out_xshm.c,v 1.132 2004/05/09 21:05:34 miguelfreitas Exp $
*
* video_out_xshm.c, X11 shared memory extension interface for xine
*
@@ -683,8 +683,10 @@ static void clean_output_area (xshm_driver_t *this, xshm_frame_t *frame) {
this->sc.border[i].x, this->sc.border[i].y,
this->sc.border[i].w, this->sc.border[i].h);
}
- if (this->xoverlay)
+ if (this->xoverlay) {
x11osd_resize (this->xoverlay, this->sc.gui_width, this->sc.gui_height);
+ this->ovl_changed = 1;
+ }
XUnlockDisplay (this->display);
}
diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c
index c12c1e01e..21753bf87 100644
--- a/src/video_out/video_out_xv.c
+++ b/src/video_out/video_out_xv.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: video_out_xv.c,v 1.198 2004/05/06 03:09:32 miguelfreitas Exp $
+ * $Id: video_out_xv.c,v 1.199 2004/05/09 21:05:34 miguelfreitas Exp $
*
* video_out_xv.c, X11 video extension interface for xine
*
@@ -587,8 +587,10 @@ static void xv_clean_output_area (xv_driver_t *this) {
this->sc.output_width, this->sc.output_height);
}
- if (this->xoverlay)
+ if (this->xoverlay) {
x11osd_resize (this->xoverlay, this->sc.gui_width, this->sc.gui_height);
+ this->ovl_changed = 1;
+ }
XUnlockDisplay (this->display);
}
diff --git a/src/video_out/x11osd.c b/src/video_out/x11osd.c
index 7524a4c1a..8bfbb7f82 100644
--- a/src/video_out/x11osd.c
+++ b/src/video_out/x11osd.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: x11osd.c,v 1.9 2004/05/06 03:09:32 miguelfreitas Exp $
+ * $Id: x11osd.c,v 1.10 2004/05/09 21:05:35 miguelfreitas Exp $
*
* x11osd.c, use X11 Nonrectangular Window Shape Extension to draw xine OSD
*
@@ -121,7 +121,6 @@ void
x11osd_resize (x11osd * osd, int width, int height)
{
assert (osd);
- osd->clean=UNDEFINED;
if(osd->width==width && osd->height==height)
return;
osd->width = width;
@@ -145,6 +144,8 @@ x11osd_resize (x11osd * osd, int width, int height)
osd->width, osd->height, osd->depth);
break;
}
+
+ osd->clean = UNDEFINED;
x11osd_clear(osd);
}
@@ -321,9 +322,7 @@ x11osd_create (xine_t *xine, Display *display, int screen, Window window, enum x
}
osd->clean = UNDEFINED;
- if(mode==X11OSD_SHAPED) {
- x11osd_expose(osd);
- }
+ x11osd_expose(osd);
XSetErrorHandler(old_handler);
@@ -360,6 +359,7 @@ void x11osd_colorkey(x11osd * osd, uint32_t colorkey, vo_scale_t *sc)
osd->u.colorkey.colorkey=colorkey;
osd->u.colorkey.sc=sc;
+ osd->clean = UNDEFINED;
x11osd_clear(osd);
x11osd_expose(osd);
}
@@ -387,7 +387,7 @@ void x11osd_clear(x11osd *osd)
{
int i;
- if( osd->clean!=WIPED )
+ if( osd->clean != WIPED )
switch (osd->mode) {
case X11OSD_SHAPED:
XFillRectangle (osd->display, osd->u.shaped.mask_bitmap, osd->u.shaped.mask_gc_back,
@@ -424,6 +424,7 @@ void x11osd_blend(x11osd *osd, vo_overlay_t *overlay)
{
if (osd->clean==UNDEFINED)
x11osd_clear(osd); /* Workaround. Colorkey mode needs sc data before the clear. */
+
if (overlay->rle) {
int i, x, y, len, width;
int use_clip_palette, max_palette_colour[2];