summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/xinevideowidget.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/noncore/multimedia/opieplayer2/xinevideowidget.cpp b/noncore/multimedia/opieplayer2/xinevideowidget.cpp
index 1ac9277..9e86041 100644
--- a/noncore/multimedia/opieplayer2/xinevideowidget.cpp
+++ b/noncore/multimedia/opieplayer2/xinevideowidget.cpp
@@ -244,61 +244,63 @@ void XineVideoWidget::paintEvent ( QPaintEvent * )
}
}
{
// QVFB hack by Martin Jones
// We need to "touch" all affected clip rects with a normal QPainter in addition to the QDirectPainter
QPainter p ( this );
for ( int i = qt_bug_workaround_clip_rects. size ( ) - 1; i >= 0; i-- ) {
p. fillRect ( QRect ( mapFromGlobal ( qt_bug_workaround_clip_rects [ i ]. topLeft ( )), qt_bug_workaround_clip_rects [ i ]. size ( )), QBrush ( NoBrush ));
}
}
}
}
QImage *XineVideoWidget::logo ( ) const
{
return m_logo;
}
void XineVideoWidget::setLogo ( QImage* logo )
{
delete m_logo;
m_logo = logo;
}
void XineVideoWidget::setVideoFrame ( uchar* img, int w, int h, int bpl )
{
bool rot90 = (( -m_rotation ) & 1 );
if ( rot90 ) { // if the rotation is 90 or 270 we have to swap width / height
int d = w;
w = h;
h = d;
}
m_lastframe = m_thisframe;
m_thisframe. setRect (( width ( ) - w ) / 2, ( height ( ) - h ) / 2, w , h );
m_buff = img;
m_bytes_per_line_frame = bpl;
// only repaint the area that *really* needs to be repainted
repaint ((( m_thisframe & m_lastframe ) != m_lastframe ) ? m_lastframe : m_thisframe, false );
+ // ensure that we always have a valid frame!
+ m_buff = 0;
}
void XineVideoWidget::resizeEvent ( QResizeEvent * )
{
emit videoResized( videoSize() );
}
void XineVideoWidget::mouseReleaseEvent ( QMouseEvent * /*me*/ )
{
emit clicked();
}