]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix moving image while transitioning to hover pixmap
authorAurélien Gâteau <agateau@kde.org>
Thu, 11 Apr 2013 09:26:16 +0000 (11:26 +0200)
committerAurélien Gâteau <agateau@kde.org>
Fri, 12 Apr 2013 14:28:52 +0000 (16:28 +0200)
See: http://youtu.be/OMYO0U0kSL0

REVIEW: 109960
FIXED-IN: 4.10.3

src/kitemviews/kstandarditemlistwidget.cpp

index 6adb546332e234c77bcdb68313b2b87860859262..d36265f567272a58c78e5ac9bbc4d3bf7efb4d91 100644 (file)
@@ -258,21 +258,21 @@ void KStandardItemListWidget::paint(QPainter* painter, const QStyleOptionGraphic
              * https://git.reviewboard.kde.org/r/109614/
              */
             // Paint pixmap1 so that pixmap1 = m_pixmap * (1.0 - hoverOpacity())
              * https://git.reviewboard.kde.org/r/109614/
              */
             // Paint pixmap1 so that pixmap1 = m_pixmap * (1.0 - hoverOpacity())
-            QPixmap pixmap1(option->rect.size());
+            QPixmap pixmap1(m_pixmap.size());
             pixmap1.fill(Qt::transparent);
             {
                 QPainter p(&pixmap1);
                 p.setOpacity(1.0 - hoverOpacity());
             pixmap1.fill(Qt::transparent);
             {
                 QPainter p(&pixmap1);
                 p.setOpacity(1.0 - hoverOpacity());
-                drawPixmap(&p, m_pixmap);
+                p.drawPixmap(0, 0, m_pixmap);
             }
 
             // Paint pixmap2 so that pixmap2 = m_hoverPixmap * hoverOpacity()
             }
 
             // Paint pixmap2 so that pixmap2 = m_hoverPixmap * hoverOpacity()
-            QPixmap pixmap2(option->rect.size());
+            QPixmap pixmap2(pixmap1.size());
             pixmap2.fill(Qt::transparent);
             {
                 QPainter p(&pixmap2);
                 p.setOpacity(hoverOpacity());
             pixmap2.fill(Qt::transparent);
             {
                 QPainter p(&pixmap2);
                 p.setOpacity(hoverOpacity());
-                drawPixmap(&p, m_hoverPixmap);
+                p.drawPixmap(0, 0, m_hoverPixmap);
             }
 
             // Paint pixmap2 on pixmap1 using CompositionMode_Plus
             }
 
             // Paint pixmap2 on pixmap1 using CompositionMode_Plus
@@ -285,7 +285,7 @@ void KStandardItemListWidget::paint(QPainter* painter, const QStyleOptionGraphic
             }
 
             // Finally paint pixmap1 on the widget
             }
 
             // Finally paint pixmap1 on the widget
-            painter->drawPixmap(0, 0, pixmap1);
+            drawPixmap(painter, pixmap1);
         } else {
             drawPixmap(painter, m_hoverPixmap);
         }
         } else {
             drawPixmap(painter, m_hoverPixmap);
         }