summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-12-05 17:42:33 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-12-05 17:42:33 +0100
commit733ace5a7ad5b9e9f93ac87667d7d37fa5f894d5 (patch)
treea88031a8e1ac30986567070728e29ed1366d0962 /src/widgets
parenteaff48d3622bbb0e18e79f79aac6d1ac1b7e2760 (diff)
parent835b8213905b315645bc60ff5f2ab99340d075a2 (diff)
Merge remote-tracking branch 'origin/release' into stable
Conflicts: configure mkspecs/macx-ios-clang/features/default_post.prf tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp Change-Id: Iaba97eed2272bccf54289640b8197d40e22f7bf5
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/graphicsview/qgraphicsitem.cpp5
-rw-r--r--src/widgets/graphicsview/qgraphicswidget.cpp7
-rw-r--r--src/widgets/kernel/qwidget.cpp5
-rw-r--r--src/widgets/styles/qstyle.cpp2
-rw-r--r--src/widgets/styles/qstyleanimation.cpp15
-rw-r--r--src/widgets/widgets/qcombobox.cpp2
6 files changed, 21 insertions, 15 deletions
diff --git a/src/widgets/graphicsview/qgraphicsitem.cpp b/src/widgets/graphicsview/qgraphicsitem.cpp
index 04047d8d0a..2d07e545c8 100644
--- a/src/widgets/graphicsview/qgraphicsitem.cpp
+++ b/src/widgets/graphicsview/qgraphicsitem.cpp
@@ -7634,7 +7634,10 @@ QGraphicsObject::~QGraphicsObject()
bool QGraphicsObject::event(QEvent *ev)
{
if (ev->type() == QEvent::StyleAnimationUpdate) {
- update();
+ if (isVisible()) {
+ ev->accept();
+ update();
+ }
return true;
}
return QObject::event(ev);
diff --git a/src/widgets/graphicsview/qgraphicswidget.cpp b/src/widgets/graphicsview/qgraphicswidget.cpp
index 4abb5e39e5..ccc51120a9 100644
--- a/src/widgets/graphicsview/qgraphicswidget.cpp
+++ b/src/widgets/graphicsview/qgraphicswidget.cpp
@@ -1409,9 +1409,14 @@ bool QGraphicsWidget::event(QEvent *event)
break;
case QEvent::WindowActivate:
case QEvent::WindowDeactivate:
- case QEvent::StyleAnimationUpdate:
update();
break;
+ case QEvent::StyleAnimationUpdate:
+ if (isVisible()) {
+ event->accept();
+ update();
+ }
+ break;
// Taken from QWidget::event
case QEvent::ActivationChange:
case QEvent::EnabledChange:
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index c646255ddb..08e8975f9d 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -8249,7 +8249,10 @@ bool QWidget::event(QEvent *event)
update(static_cast<QUpdateLaterEvent*>(event)->region());
break;
case QEvent::StyleAnimationUpdate:
- update();
+ if (isVisible() && !window()->isMinimized()) {
+ event->accept();
+ update();
+ }
break;
case QEvent::WindowBlocked:
diff --git a/src/widgets/styles/qstyle.cpp b/src/widgets/styles/qstyle.cpp
index 77f869f036..da9b5da2a5 100644
--- a/src/widgets/styles/qstyle.cpp
+++ b/src/widgets/styles/qstyle.cpp
@@ -619,7 +619,7 @@ void QStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment, c
void QStyle::drawItemPixmap(QPainter *painter, const QRect &rect, int alignment,
const QPixmap &pixmap) const
{
- int scale = pixmap.devicePixelRatio();
+ qreal scale = pixmap.devicePixelRatio();
QRect aligned = alignedRect(QApplication::layoutDirection(), QFlag(alignment), pixmap.size() / scale, rect);
QRect inter = aligned.intersected(rect);
diff --git a/src/widgets/styles/qstyleanimation.cpp b/src/widgets/styles/qstyleanimation.cpp
index 4fb67d90c0..90fb371982 100644
--- a/src/widgets/styles/qstyleanimation.cpp
+++ b/src/widgets/styles/qstyleanimation.cpp
@@ -93,7 +93,10 @@ void QStyleAnimation::setStartTime(const QTime &time)
void QStyleAnimation::updateTarget()
{
QEvent event(QEvent::StyleAnimationUpdate);
+ event.setAccepted(false);
QCoreApplication::sendEvent(target(), &event);
+ if (!event.isAccepted())
+ stop();
}
bool QStyleAnimation::isUpdateNeeded() const
@@ -103,16 +106,8 @@ bool QStyleAnimation::isUpdateNeeded() const
void QStyleAnimation::updateCurrentTime(int)
{
- if (QObject *tgt = target()) {
- if (tgt->isWidgetType()) {
- QWidget *widget = static_cast<QWidget *>(tgt);
- if (!widget->isVisible() || widget->window()->isMinimized())
- stop();
- }
-
- if (isUpdateNeeded())
- updateTarget();
- }
+ if (target() && isUpdateNeeded())
+ updateTarget();
}
QProgressStyleAnimation::QProgressStyleAnimation(int speed, QObject *target) :
diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp
index 37a14d3eb3..2c09f5a8f1 100644
--- a/src/widgets/widgets/qcombobox.cpp
+++ b/src/widgets/widgets/qcombobox.cpp
@@ -3073,7 +3073,7 @@ void QComboBox::wheelEvent(QWheelEvent *e)
newIndex--;
while ((newIndex >= 0) && !(d->model->flags(d->model->index(newIndex,d->modelColumn,d->root)) & Qt::ItemIsEnabled))
newIndex--;
- } else {
+ } else if (e->delta() < 0) {
newIndex++;
while ((newIndex < count()) && !(d->model->flags(d->model->index(newIndex,d->modelColumn,d->root)) & Qt::ItemIsEnabled))
newIndex++;