From fe1481d199f8f35734cff5eac8d8edf6a50aff52 Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Wed, 26 Nov 2003 18:36:34 +0000 Subject: fix x11osd bugs with fullscreen changing CVS patchset: 5789 CVS date: 2003/11/26 18:36:34 --- src/video_out/video_out_vidix.c | 5 +++-- src/video_out/video_out_xshm.c | 5 +++-- src/video_out/video_out_xv.c | 5 +++-- src/video_out/x11osd.c | 7 ++++++- 4 files changed, 15 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/video_out/video_out_vidix.c b/src/video_out/video_out_vidix.c index 66bd8cf6d..8e06be682 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.52 2003/11/26 01:03:32 miguelfreitas Exp $ + * $Id: video_out_vidix.c,v 1.53 2003/11/26 18:36:34 miguelfreitas Exp $ * * video_out_vidix.c * @@ -585,7 +585,7 @@ static void vidix_overlay_begin (vo_driver_t *this_gen, #ifdef HAVE_X11 vidix_driver_t *this = (vidix_driver_t *) this_gen; - this->ovl_changed = changed; + this->ovl_changed += changed; if( this->ovl_changed && this->xoverlay ) { XLockDisplay (this->display); @@ -883,6 +883,7 @@ static int vidix_gui_data_exchange (vo_driver_t *this_gen, this->gc = XCreateGC(this->display, this->drawable, 0, NULL); if(this->xoverlay) x11osd_drawable_changed(this->xoverlay, this->drawable); + this->ovl_changed = 1; XUnlockDisplay(this->display); #endif } diff --git a/src/video_out/video_out_xshm.c b/src/video_out/video_out_xshm.c index 5ec9b31aa..26e9bd4c1 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.120 2003/11/26 01:03:32 miguelfreitas Exp $ + * $Id: video_out_xshm.c,v 1.121 2003/11/26 18:36:34 miguelfreitas Exp $ * * video_out_xshm.c, X11 shared memory extension interface for xine * @@ -609,7 +609,7 @@ static void xshm_overlay_begin (vo_driver_t *this_gen, vo_frame_t *frame_gen, int changed) { xshm_driver_t *this = (xshm_driver_t *) this_gen; - this->ovl_changed = changed; + this->ovl_changed += changed; if( this->ovl_changed && this->xoverlay ) { XLockDisplay (this->display); @@ -928,6 +928,7 @@ static int xshm_gui_data_exchange (vo_driver_t *this_gen, this->gc = XCreateGC (this->display, this->drawable, 0, NULL); if(this->xoverlay) x11osd_drawable_changed(this->xoverlay, this->drawable); + this->ovl_changed = 1; XUnlockDisplay (this->display); break; diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c index cdb102b26..ae9b76579 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.182 2003/11/26 01:03:32 miguelfreitas Exp $ + * $Id: video_out_xv.c,v 1.183 2003/11/26 18:36:34 miguelfreitas Exp $ * * video_out_xv.c, X11 video extension interface for xine * @@ -614,7 +614,7 @@ static void xv_overlay_begin (vo_driver_t *this_gen, vo_frame_t *frame_gen, int changed) { xv_driver_t *this = (xv_driver_t *) this_gen; - this->ovl_changed = changed; + this->ovl_changed += changed; if( this->ovl_changed && this->xoverlay ) { XLockDisplay (this->display); @@ -974,6 +974,7 @@ static int xv_gui_data_exchange (vo_driver_t *this_gen, this->gc = XCreateGC (this->display, this->drawable, 0, NULL); if(this->xoverlay) x11osd_drawable_changed(this->xoverlay, this->drawable); + this->ovl_changed = 1; XUnlockDisplay (this->display); this->sc.force_redraw = 1; break; diff --git a/src/video_out/x11osd.c b/src/video_out/x11osd.c index 9caa08ff9..b268024b2 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.2 2003/11/26 10:02:52 miguelfreitas Exp $ + * $Id: x11osd.c,v 1.3 2003/11/26 18:36:34 miguelfreitas Exp $ * * x11osd.c, use X11 Nonrectangular Window Shape Extension to draw xine OSD * @@ -158,6 +158,11 @@ x11osd_drawable_changed (x11osd * osd, Window window) osd->visual, AllocNone); XSelectInput (osd->display, osd->window, ExposureMask); + + osd->clean = 0; + x11osd_clear(osd); + osd->mapped = 0; + x11osd_expose(osd); } static int x11_error = False ; -- cgit v1.2.3