]> git.sesse.net Git - kdenlive/commitdiff
Fix 2 crashes when clip and project monitor are side by side and resizing or seeking...
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 29 Oct 2011 18:06:53 +0000 (18:06 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 29 Oct 2011 18:06:53 +0000 (18:06 +0000)
http://kdenlive.org/mantis/view.php?id=2364

svn path=/trunk/kdenlive/; revision=6000

src/monitor.cpp
src/monitor.h
src/renderer.cpp

index 0c796086bb9d4ab3d63c08b60b657d181c0ac9c8..6e64e829e2b8bbfeb99a2f55c5712a65c7d6715d 100644 (file)
@@ -455,6 +455,13 @@ void Monitor::mousePressEvent(QMouseEvent * event)
     }
 }
 
+void Monitor::resizeEvent(QResizeEvent *event)
+{
+    Q_UNUSED(event);
+    if (render && isVisible() && isActive()) render->doRefresh();
+}
+
+
 void Monitor::slotSwitchFullScreen()
 {
     m_videoBox->switchFullScreen();
@@ -605,8 +612,8 @@ void Monitor::slotSeek()
 
 void Monitor::slotSeek(int pos)
 {
-    //activateMonitor();
     if (render == NULL) return;
+    activateMonitor();
     render->seekToFrame(pos);
 }
 
@@ -1055,12 +1062,6 @@ void MonitorRefresh::setRenderer(Render* render)
 }
 
 
-void MonitorRefresh::resizeEvent(QResizeEvent *event)
-{
-    Q_UNUSED(event);
-    if (m_renderer && isVisible()) m_renderer->doRefresh();
-}
-
 Overlay::Overlay(QWidget* parent) :
     QLabel(parent)
 {
index 9bb72f1db0897b0fd73cf7c3e46bb861295526d4..527935e4922ba8645efba9c614cecddbdd6376dd 100644 (file)
@@ -74,16 +74,8 @@ public:
     MonitorRefresh(QWidget *parent = 0);
     void setRenderer(Render* render);
 
-protected:
-    virtual void resizeEvent(QResizeEvent *event);
-
 private:
     Render *m_renderer;
-
-signals:
-    void switchFullScreen();
-    void switchPlay();
-    void mouseSeek(int, bool);
 };
 
 class Overlay : public QLabel
@@ -133,6 +125,7 @@ public:
 protected:
     virtual void mousePressEvent(QMouseEvent * event);
     virtual void mouseReleaseEvent(QMouseEvent * event);
+    virtual void resizeEvent(QResizeEvent *event);
 
     /** @brief Move to another position on mouse wheel event.
      *
index ee07e4c6e5327fd052687d1ce103e3fcc74c0d53..c1caeed109d17cbcb5fbe2147fbb7697a4e57949 100644 (file)
@@ -1486,7 +1486,7 @@ void Render::seekToFrameDiff(int diff)
 
 void Render::doRefresh()
 {
-    m_refreshTimer.start();
+    if (m_mltProducer && m_mltProducer->get_speed() == 0) m_refreshTimer.start();
 }
 
 void Render::refresh()