summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xine_sxfe_frontend.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/xine_sxfe_frontend.c b/xine_sxfe_frontend.c
index 66b1299b..0ce3f9e0 100644
--- a/xine_sxfe_frontend.c
+++ b/xine_sxfe_frontend.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: xine_sxfe_frontend.c,v 1.106 2009-02-10 16:30:21 phintuka Exp $
+ * $Id: xine_sxfe_frontend.c,v 1.107 2009-02-10 16:34:19 phintuka Exp $
*
*/
@@ -644,12 +644,14 @@ static int hud_osd_command(frontend_t *this_gen, struct osd_command_s *cmd)
XSetForeground(this->display, this->gc, 0x00000000);
XFillRectangle(this->display, this->surf_img->draw, this->gc,
- 0, 0, this->osd_width+2, this->osd_height+2);
+ 0, 0, this->osd_width+2, this->osd_height+2);
XFlush(this->display);
break;
case OSD_Set_RLE: /* Create/update OSD window. Data is rle-compressed. */
LOGDBG("HUD Set RLE");
+ if (!(cmd->flags & OSDFLAG_TOP_LAYER))
+ break;
#ifdef HAVE_XSHM
if(this->completion_event != -1) {
hud_fill_img_memory((uint32_t*)(this->hud_img->data), cmd);
@@ -721,9 +723,11 @@ static int hud_osd_command(frontend_t *this_gen, struct osd_command_s *cmd)
case OSD_Close: /* Close OSD window */
LOGDBG("HUD osd Close");
+ if (!(cmd->flags & OSDFLAG_TOP_LAYER))
+ break;
XSetForeground(this->display, this->gc, 0x00000000);
XFillRectangle(this->display, this->hud_window, this->gc,
- 0, 0, this->x.width, this->x.height);
+ 0, 0, this->x.width, this->x.height);
XFillRectangle(this->display, this->surf_img->draw, this->gc,
0, 0, this->osd_width+2, this->osd_height+2);
XFlush(this->display);
@@ -773,7 +777,7 @@ static int hud_osd_open(sxfe_t *this)
attributes.border_pixel = 0;
attributes.colormap = hud_colormap;
attributes.backing_store = Always;
-
+
this->hud_window = XCreateWindow(this->display, DefaultRootWindow(this->display),
this->x.xpos, this->x.ypos,
this->x.width, this->x.height,