[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/kmplayer/src
From: Koos Vriezen <koos.vriezen () xs4all ! nl>
Date: 2006-05-31 21:30:30
Message-ID: 1149111030.642920.30422.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 547117 by vriezen:
Non exposed nodes may have exposed children.
Seems a full repaint is not needed when process finishes, it's causing
annoying flicker w/ smil animation that have audio/video
M +17 -15 kmplayerpartbase.cpp
--- trunk/extragear/multimedia/kmplayer/src/kmplayerpartbase.cpp #547116:547117
@@ -578,14 +578,12 @@
}
static NodePtr depthFirstFindMrl (NodePtr e) {
- if (e->expose ()) {
- if (e->isMrl ())
- return e;
- for (NodePtr c = e->firstChild (); c; c = c->nextSibling ()) {
- NodePtr m = depthFirstFindMrl (c);
- if (m)
- return m;
- }
+ if (e->isMrl ())
+ return e;
+ for (NodePtr c = e->firstChild (); c; c = c->nextSibling ()) {
+ NodePtr m = depthFirstFindMrl (c);
+ if (m)
+ return m;
}
return NodePtr ();
}
@@ -701,8 +699,10 @@
ListViewItem * lvi = static_cast <ListViewItem *> (m_view->playList ()->currentItem ());
if (lvi)
for (NodePtr n = lvi->m_elm; n; n = n->parentNode ()) {
- if (n->isMrl ())
+ if (n->isMrl ()) {
m_source->setCurrent (n);
+ break;
+ }
}
m_process->ready (m_view->viewer ());
} else if (m_process->state () == Process::Ready) {
@@ -1350,12 +1350,14 @@
emit stopPlaying ();
} else if (news == Process::Ready) {
if (olds > Process::Ready) {
- if (p->mrl ()) { // p->mrl is weak, check it
- if (p->mrl ()->active ()) // if cause is eof
- p->mrl ()->finish (); // set node to finished
+ NodePtr node = p->mrl (); // p->mrl is weak, needs check
+ Mrl * mrl = node ? node->mrl () : 0L;
+ if (mrl) {
+ if (mrl->active ()) // if cause is eof
+ mrl->finish (); // set node to finished
else if (!m_back_request &&
- p->mrl ()->state == Element::state_deferred)
- p->mrl ()->undefer ();
+ mrl->state == Element::state_deferred)
+ mrl->undefer ();
}
if (m_back_request && m_back_request->isMrl ()) { // jump in pl
m_current = m_back_request;
@@ -1372,7 +1374,7 @@
}
m_back_request = 0L;
}
- if (m_player->view ())
+ if (m_player->view() && (!mrl || mrl->view_mode != Mrl::Window))
static_cast<View*>(m_player->view())->viewArea()->repaint();
} else
QTimer::singleShot (0, this, SLOT (playCurrent ()));
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic