Ticket #8950: 8950-v1.patch

File 8950-v1.patch, 3.2 KB (added by danielk, 14 years ago)

Possible fix

  • libs/libmythtv/tv_play.h

     
    804804    QRect saved_gui_bounds;
    805805    /// true if this instance disabled MythUI drawing.
    806806    bool  weDisabledGUI;
     807    /// true if video chromakey and frame should not be drawn
     808    bool  disableDrawUnusedRects;
    807809
    808810    // embedded status
    809811    bool         isEmbedded;       ///< are we currently embedded
  • libs/libmythtv/tv_play.cpp

     
    919919      lcdTitle(""), lcdSubtitle(""), lcdCallsign(""),
    920920      // Window info (GUI is optional, transcoding, preview img, etc)
    921921      myWindow(NULL),               weDisabledGUI(false),
     922      disableDrawUnusedRects(false),
    922923      isEmbedded(false),            ignoreKeyPresses(false),
    923924      // Timers
    924925      lcdTimerId(0),                keyListTimerId(0),
     
    34153416        case QEvent::Enter:
    34163417        {
    34173418            event(e);
    3418             return true;
     3419            return false;
    34193420        }
    34203421        default:
    34213422            return false;
     
    77297730
    77307731void TV::DrawUnusedRects(void)
    77317732{
    7732     if (!weDisabledGUI)
     7733    if (disableDrawUnusedRects)
    77337734        return;
    77347735
    77357736    VERBOSE(VB_PLAYBACK, LOC + "DrawUnusedRects() -- begin");
     
    78857886        }
    78867887    }
    78877888
     7889    // If the video is paused, don't paint it's unused rects & chromakey
     7890    disableDrawUnusedRects = pause_active;
     7891
    78887892    // We are embedding in a mythui window so assuming no one
    78897893    // else has disabled painting show the MythUI window again.
    78907894    if (GetMythMainWindow() && weDisabledGUI)
     
    86158619        }
    86168620
    86178621        DoSetPauseState(actx, saved_pause); // Restore pause states
     8622        disableDrawUnusedRects = false;
    86188623
    86198624        GetMythMainWindow()->GetPaintWindow()->hide();
    86208625        GetMythMainWindow()->GetPaintWindow()->clearMask();
  • libs/libmythtv/videoout_xv.cpp

     
    25862586        return;
    25872587    }
    25882588
    2589     // This is used to avoid drawing the colorkey when embedding and
    2590     // not using overlay. This is needed because we don't paint this
    2591     // in the vertical retrace period when calling this from the EPG.
    2592     bool clrdraw = xv_colorkey || !window.IsEmbedding();
    2593 
    2594     if (xv_draw_colorkey && window.IsRepaintNeeded() && clrdraw)
     2589    if (xv_draw_colorkey && window.IsRepaintNeeded())
    25952590    {
    25962591        disp->SetForeground(xv_colorkey);
    25972592        disp->FillRectangle(XJ_curwin,
     
    26002595                       display_visible_rect.width(),
    26012596                       display_visible_rect.height() - 2 * boboff));
    26022597    }
    2603     else if (xv_draw_colorkey && xv_need_bobdeint_repaint && clrdraw)
     2598    else if (xv_draw_colorkey && xv_need_bobdeint_repaint)
    26042599    {
    26052600        // if this is only for deinterlacing mode switching, draw
    26062601        // the border areas, presumably the main image is undamaged.