[clementine/f12/master] * Sun Aug 08 2010 Orcan Ogetbil <oget[dot]fedora[at]gmail[dot]com> - 0.4.2-9 - Only create the OpenG

Orcan Ogetbil oget at fedoraproject.org
Thu Aug 12 03:04:00 UTC 2010


commit ca4cdf63daa911e1b7d84bf155bbaeb0d41a3c9d
Author: Orcan Ogetbil <oget.fedora at gmail.com>
Date:   Wed Aug 11 23:04:00 2010 -0400

    * Sun Aug 08 2010 Orcan Ogetbil <oget[dot]fedora[at]gmail[dot]com> - 0.4.2-9
    - Only create the OpenGL graphics context when you first open the visualisations
      window. Fixes RHBZ#621913

 clementine-visualization-init.patch |   90 +++++++++++++++++++++++++++++++++++
 clementine.spec                     |   11 ++++-
 2 files changed, 100 insertions(+), 1 deletions(-)
---
diff --git a/clementine-visualization-init.patch b/clementine-visualization-init.patch
new file mode 100644
index 0000000..87f1af5
--- /dev/null
+++ b/clementine-visualization-init.patch
@@ -0,0 +1,90 @@
+diff -rupN clementine-0.4.2.old/src/visualisations/visualisationcontainer.cpp clementine-0.4.2/src/visualisations/visualisationcontainer.cpp
+--- clementine-0.4.2.old/src/visualisations/visualisationcontainer.cpp	2010-07-01 14:16:36.000000000 -0400
++++ clementine-0.4.2/src/visualisations/visualisationcontainer.cpp	2010-08-08 19:21:01.000000000 -0400
+@@ -40,6 +40,7 @@ const int VisualisationContainer::kDefau
+ 
+ VisualisationContainer::VisualisationContainer(QWidget *parent)
+   : QGraphicsView(parent),
++    initialised_(false),
+     engine_(NULL),
+     vis_(new ProjectMVisualisation(this)),
+     overlay_(new VisualisationOverlay),
+@@ -49,6 +50,16 @@ VisualisationContainer::VisualisationCon
+     fps_(kDefaultFps),
+     size_(kDefaultTextureSize)
+ {
++  QSettings s;
++  s.beginGroup(kSettingsGroup);
++  if (!restoreGeometry(s.value("geometry").toByteArray())) {
++    resize(kDefaultWidth, kDefaultHeight);
++  }
++  fps_ = s.value("fps", kDefaultFps).toInt();
++  size_ = s.value("size", kDefaultTextureSize).toInt();
++}
++
++void VisualisationContainer::Init() {
+   setWindowTitle(tr("Clementine Visualization"));
+   setWindowIcon(QIcon(":/icon.png"));
+ 
+@@ -66,17 +77,8 @@ VisualisationContainer::VisualisationCon
+   connect(overlay_, SIGNAL(ShowPopupMenu(QPoint)), SLOT(ShowPopupMenu(QPoint)));
+   ChangeOverlayOpacity(0.0);
+ 
+-  // Load settings
+-  QSettings s;
+-  s.beginGroup(kSettingsGroup);
+-  if (!restoreGeometry(s.value("geometry").toByteArray())) {
+-    resize(kDefaultWidth, kDefaultHeight);
+-  }
+-  fps_ = s.value("fps", kDefaultFps).toInt();
+-  size_ = s.value("size", kDefaultTextureSize).toInt();
+-
+-  SizeChanged();
+   vis_->SetTextureSize(size_);
++  SizeChanged();
+ 
+   // Selector
+   selector_->SetVisualisation(vis_);
+@@ -130,6 +132,11 @@ void VisualisationContainer::SetEngine(G
+ }
+ 
+ void VisualisationContainer::showEvent(QShowEvent* e) {
++  if (!initialised_) {
++    Init();
++    initialised_ = true;
++  }
++
+   QGraphicsView::showEvent(e);
+   update_timer_.start(1000 / fps_, this);
+ 
+@@ -165,7 +172,8 @@ void VisualisationContainer::SizeChanged
+     scene()->setSceneRect(QRect(QPoint(0, 0), size()));
+ 
+   // Resize the overlay
+-  overlay_->resize(size());
++  if (overlay_)
++    overlay_->resize(size());
+ }
+ 
+ void VisualisationContainer::timerEvent(QTimerEvent* e) {
+diff -rupN clementine-0.4.2.old/src/visualisations/visualisationcontainer.h clementine-0.4.2/src/visualisations/visualisationcontainer.h
+--- clementine-0.4.2.old/src/visualisations/visualisationcontainer.h	2010-07-01 14:16:36.000000000 -0400
++++ clementine-0.4.2/src/visualisations/visualisationcontainer.h	2010-08-08 19:21:15.000000000 -0400
+@@ -65,6 +65,8 @@ protected:
+   void keyReleaseEvent(QKeyEvent *event);
+ 
+ private:
++  void Init();
++
+   void SizeChanged();
+   void AddMenuItem(const QString& name, int value, int def,
+                    QActionGroup* group, QSignalMapper* mapper);
+@@ -77,6 +79,8 @@ private slots:
+   void SetQuality(int size);
+ 
+ private:
++  bool initialised_;
++
+   GstEngine* engine_;
+   ProjectMVisualisation* vis_;
+   VisualisationOverlay* overlay_;
diff --git a/clementine.spec b/clementine.spec
index 9d02c40..aea4ad9 100644
--- a/clementine.spec
+++ b/clementine.spec
@@ -1,6 +1,6 @@
 Name:           clementine
 Version:        0.4.2
-Release:        8%{?dist}
+Release:        9%{?dist}
 Summary:        A music player and library organizer
 
 Group:          Applications/Multimedia
@@ -34,6 +34,10 @@ Patch6:         clementine-fix-lastfm-crash.patch
 # Enforce Fedora specific optimization flags. Accepted by upstream.
 # http://code.google.com/p/clementine-player/source/detail?r=1639
 Patch7:         clementine-fix-buildfags.patch
+# Only create the OpenGL graphics context when you first open the visualisations
+# window. Fixes RHBZ#621913. From upstream trunk:
+# http://code.google.com/p/clementine-player/source/detail?spec=svn1661&r=1431
+Patch8:         clementine-visualization-init.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:  boost-devel
@@ -72,6 +76,7 @@ advantage of Qt4.
 %patch5 -p1 -b .fontpaths
 %patch6 -p1 -b .fix.lastfm.crash
 %patch7 -p1 -b .build.flags
+%patch8 -p1 -b .visual.init
 
 # We already don't use these but just to make sure
 rm -fr 3rdparty/gmock
@@ -137,6 +142,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 
 
 %changelog
+* Sun Aug 08 2010 Orcan Ogetbil <oget[dot]fedora[at]gmail[dot]com> - 0.4.2-9
+- Only create the OpenGL graphics context when you first open the visualisations
+  window. Fixes RHBZ#621913
+
 * Fri Aug 06 2010 Orcan Ogetbil <oget[dot]fedora[at]gmail[dot]com> - 0.4.2-8
 - Enforce Fedora compilation flags
 


More information about the scm-commits mailing list