diff options
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/kernel/qwidget.cpp | 10 | ||||
-rw-r--r-- | src/widgets/kernel/qwidget_p.h | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index def3589d9a..70249785e2 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -353,10 +353,10 @@ void QWidgetPrivate::scrollChildren(int dx, int dy) } } -void QWidgetPrivate::updateWidgetTransform() +void QWidgetPrivate::updateWidgetTransform(QEvent *event) { Q_Q(QWidget); - if (q == qGuiApp->focusObject()) { + if (q == qGuiApp->focusObject() || event->type() == QEvent::FocusIn) { QTransform t; QPoint p = q->mapTo(q->topLevelWidget(), QPoint(0,0)); t.translate(p.x(), p.y()); @@ -8058,7 +8058,7 @@ bool QWidget::event(QEvent *event) break; case QEvent::FocusIn: focusInEvent((QFocusEvent*)event); - d->updateWidgetTransform(); + d->updateWidgetTransform(event); break; case QEvent::FocusOut: @@ -8100,12 +8100,12 @@ bool QWidget::event(QEvent *event) case QEvent::Move: moveEvent((QMoveEvent*)event); - d->updateWidgetTransform(); + d->updateWidgetTransform(event); break; case QEvent::Resize: resizeEvent((QResizeEvent*)event); - d->updateWidgetTransform(); + d->updateWidgetTransform(event); break; case QEvent::Close: diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 5387341a75..c8fb2782b3 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -438,7 +438,7 @@ public: void syncBackingStore(const QRegion ®ion); // tells the input method about the widgets transform - void updateWidgetTransform(); + void updateWidgetTransform(QEvent *event); void reparentFocusWidgets(QWidget *oldtlw); |