Hello community,

here is the log from the commit of package amarok for openSUSE:12.1:Update:Test 
checked in at 2011-12-12 16:26:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1:Update:Test/amarok (Old)
 and      /work/SRC/openSUSE:12.1:Update:Test/.amarok.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "amarok", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:12.1:Update:Test/amarok/amarok.changes   2011-12-12 
16:26:19.000000000 +0100
+++ /work/SRC/openSUSE:12.1:Update:Test/.amarok.new/amarok.changes      
2011-12-12 16:26:19.000000000 +0100
@@ -1,0 +2,7 @@
+Sat Dec 10 07:03:24 UTC 2011 - [email protected]
+
+- Add amarok-fix-infinite-loop-eating-CPU.diff
+  * Fix infinite loop in context view eating CPU until main 
+    window is shown (bnc#733421)
+
+-------------------------------------------------------------------

New:
----
  amarok-fix-infinite-loop-eating-CPU.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ amarok.spec ++++++
--- /var/tmp/diff_new_pack.Izk6sg/_old  2011-12-12 16:26:20.000000000 +0100
+++ /var/tmp/diff_new_pack.Izk6sg/_new  2011-12-12 16:26:20.000000000 +0100
@@ -15,17 +15,16 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
-
 %bcond_with ffmpeg
 
 Name:           amarok
 Version:        2.4.3
-Release:        4
+Release:        0
 Summary:        Media Player for KDE
+License:        GPL-2.0+
+Group:          Productivity/Multimedia/Sound/Players
 
-License:        GPLv2+
 Url:            http://amarok.kde.org/
-Group:          Productivity/Multimedia/Sound/Players
 Source0:        
ftp://ftp.kde.org/pub/kde/stable/amarok/%{version}/src/%{name}-%{version}.tar.bz2
 # PATCH-FEATURE-OPENSUSE ksuseinstall.diff [email protected] -- Support for 
on-demand codecs install using ksuseinstall
 Patch1:         ksuseinstall.diff
@@ -33,6 +32,8 @@
 Patch2:         initial-preference.diff
 # PATCH-FIX-OPENSUSE flac_mimetype_bnc671581.diff bnc#671581 [email protected] 
-- Support for the changed mimetype for flac files
 Patch3:         flac_mimetype_bnc671581.diff
+# PATCH-FIX-UPSTREAM amarok-fix-infinite-loop-eating-CPU.diff bnc#733421 
[email protected] -- Fix infinite loop in context view eating CPU until main window 
shown
+Patch4:         amarok-fix-infinite-loop-eating-CPU.diff
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 # Required for the fdupes macro
@@ -93,6 +94,7 @@
 %if 0%{?suse_version} > 1130
 %patch3
 %endif
+%patch4 -p1
 
 # Remove build time references so build-compare can do its work
 FAKE_BUILDDATE=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%b %%e 
%%Y')

++++++ amarok-fix-infinite-loop-eating-CPU.diff ++++++
commit 79bd9a7c6777e3f5d4e723bc5d3b00e5d6fe532b
Author: MatÄ›j Laitl <[email protected]>
Date:   Sun Nov 27 15:24:55 2011 +0100

    Fix infinite loop in context view eating CPU until main window is shown
    
    We used to use _scene_ sceneRect in
    VerticalToolbarContainment::updateGeometry() to update applets and
    geometry, but that leaded to infinite loop (across mainloop) -
    m_applets->setGeometry(), refresh() would enlarge _scene_ sceneRect by
    a few pixels which would trigger updateGeometry() and so on...
    
    We now use _view_ sceneRect to update geometry. Rick W. Chen discovered
    some glitches in applet collapsing when this patch is applied, but he
    has a patch for that in the works and this is more serious problem, so
    pushing this.
    
    REVIEW: 103271
    BUG: 278897
    FIXED-IN: 2.5

Index: 
amarok-2.4.3/src/context/containments/verticallayout/VerticalToolbarContainment.cpp
===================================================================
--- 
amarok-2.4.3.orig/src/context/containments/verticallayout/VerticalToolbarContainment.cpp
+++ 
amarok-2.4.3/src/context/containments/verticallayout/VerticalToolbarContainment.cpp
@@ -118,7 +118,18 @@ void
 Context::VerticalToolbarContainment::updateGeometry()
 {
     Context::Containment::updateGeometry();
-    QRectF rect = scene()->sceneRect();
+
+    /* We used to use _scene_ sceneRect here to update applets and geomtery, 
but that
+     * leaded to infinite loop (across mainloop) - see bug 278897.
+     * (m_applets->setGeometry(), refresh() would enlarge _scene_ sceneRect by 
a few
+     * pixels which would trigger updateGeometry() and so on...)
+     *
+     * We now use _view_ sceneRect to update geometry and do nothing without a 
view
+     */
+    if(!view())
+        return;
+
+    QRectF rect = view()->sceneRect();
     setGeometry( rect );
     m_applets->setGeometry( rect );
     m_applets->refresh();
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to