From 50d391287d28c359470fdf77b4d41b7dee7311e5 Mon Sep 17 00:00:00 2001 From: Ewald Snel Date: Sat, 20 Jul 2002 21:46:05 +0000 Subject: Update entire video window, not just output area, on X11 Expose events - fixes problem with xine aRts plugin (popup menus remain visible) CVS patchset: 2331 CVS date: 2002/07/20 21:46:05 --- src/video_out/video_out_xshm.c | 22 +++++++++++++++++++++- src/video_out/video_out_xv.c | 24 +++++++++++++++++++++++- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/video_out/video_out_xshm.c b/src/video_out/video_out_xshm.c index 39b7b9708..2a2e98317 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.80 2002/07/16 19:33:37 esnel Exp $ + * $Id: video_out_xshm.c,v 1.81 2002/07/20 21:46:05 esnel Exp $ * * video_out_xshm.c, X11 shared memory extension interface for xine * @@ -1115,6 +1115,26 @@ static int xshm_gui_data_exchange (vo_driver_t *this_gen, 0, 0, xoffset, yoffset, this->cur_frame->output_width, this->cur_frame->output_height); } + + XSetForeground (this->display, this->gc, this->black.pixel); + + if (this->cur_frame->output_height != this->cur_frame->gui_height) { + int y = yoffset + this->cur_frame->output_height; + + XFillRectangle(this->display, this->drawable, this->gc, 0, 0, + this->cur_frame->gui_width, yoffset); + XFillRectangle(this->display, this->drawable, this->gc, 0, y, + this->cur_frame->gui_width, (this->cur_frame->gui_height - y)); + } + if (this->cur_frame->output_width != this->cur_frame->gui_width) { + int x = xoffset + this->cur_frame->output_width; + + XFillRectangle(this->display, this->drawable, this->gc, 0, yoffset, + xoffset, this->cur_frame->output_height); + XFillRectangle(this->display, this->drawable, this->gc, x, yoffset, + (this->cur_frame->gui_width - x), this->cur_frame->output_height); + } + XFlush (this->display); XUnlockDisplay (this->display); diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c index c6a4e3a82..cafc6007c 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.123 2002/07/15 21:42:34 esnel Exp $ + * $Id: video_out_xv.c,v 1.124 2002/07/20 21:46:06 esnel Exp $ * * video_out_xv.c, X11 video extension interface for xine * @@ -1051,6 +1051,28 @@ static int xv_gui_data_exchange (vo_driver_t *this_gen, this->output_xoffset, this->output_yoffset, this->output_width, this->output_height); } + + XSetForeground (this->display, this->gc, this->black.pixel); + + if (this->output_height != this->gui_height) { + int y = this->output_yoffset + this->output_height; + + XFillRectangle(this->display, this->drawable, this->gc, 0, 0, + this->gui_width, this->output_yoffset); + XFillRectangle(this->display, this->drawable, this->gc, 0, y, + this->gui_width, (this->gui_height - y)); + } + if (this->output_width != this->gui_width) { + int x = this->output_xoffset + this->output_width; + + XFillRectangle(this->display, this->drawable, this->gc, + 0, this->output_yoffset, + this->output_xoffset, this->output_height); + XFillRectangle(this->display, this->drawable, this->gc, + x, this->output_yoffset, + this->gui_width - x, this->output_height); + } + XFlush(this->display); XUnlockDisplay (this->display); -- cgit v1.2.3