Ignore:
Timestamp:
Feb 11, 2010, 11:19:06 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.1 sources.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/3rdparty/phonon/ds9/videowidget.cpp

    r2 r561  
    8585            {
    8686                m_currentRenderer = renderer;
    87                 update();
     87                //we disallow repaint on that widget for just a fraction of second
     88                //this allows better transition between videos
     89                setUpdatesEnabled(false);
     90                m_flickerFreeTimer.start(20, this);
     91            }
     92
     93            void timerEvent(QTimerEvent *e)
     94            {
     95                if (e->timerId() == m_flickerFreeTimer.timerId()) {
     96                    m_flickerFreeTimer.stop();
     97                    setUpdatesEnabled(true);
     98                }
     99                QWidget::timerEvent(e);
    88100            }
    89101
     
    107119            void paintEvent(QPaintEvent *e)
    108120            {
     121                if (!updatesEnabled())
     122                    return; //this avoids repaint from native events
    109123                checkCurrentRenderingMode();
    110124                m_currentRenderer->repaintCurrentFrame(this, e->rect());
     
    154168                } else if (!isEmbedded()) {
    155169                    m_currentRenderer = m_node->switchRendering(m_currentRenderer);
    156                     setAttribute(Qt::WA_PaintOnScreen, true);
     170                    setAttribute(Qt::WA_PaintOnScreen, false);
    157171                }
    158172            }
     
    161175            AbstractVideoRenderer *m_currentRenderer;
    162176            QVariant m_restoreScreenSaverActive;
     177            QBasicTimer m_flickerFreeTimer;
    163178        };
    164179
     
    262277            m_aspectRatio = aspectRatio;
    263278            updateVideoSize();
     279            m_widget->update();
    264280        }
    265281
     
    280296            m_scaleMode = scaleMode;
    281297            updateVideoSize();
     298            m_widget->update();
    282299        }
    283300
Note: See TracChangeset for help on using the changeset viewer.