From 72259baa76a0f1faa1983c720621676e9c15e15f Mon Sep 17 00:00:00 2001 From: Alex Montgomery Date: Tue, 14 Jan 2014 13:53:10 -0800 Subject: [PATCH] Fixed duplicate QMoveEvent generated for each QWidget::move call Removed QMoveEvent generating code from QWidgetPrivate::setGeometry_sys for widgets with native window handles. A move event is already generated for them by QGuiApplicationPrivate::processGeometryChangeEvent. Task-number: QTBUG-32590 Change-Id: I73313a012851516047ac017f1e15a21774d8ffe2 Reviewed-by: Friedemann Kleint --- src/widgets/kernel/qwidget_qpa.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp index 0fd794cc02..ea6f27caf9 100644 --- a/src/widgets/kernel/qwidget_qpa.cpp +++ b/src/widgets/kernel/qwidget_qpa.cpp @@ -768,7 +768,10 @@ void QWidgetPrivate::setGeometry_sys(int x, int y, int w, int h, bool isMove) } } - if (isMove) { + // generate a move event for QWidgets without window handles. QWidgets with native + // window handles already receive a move event from + // QGuiApplicationPrivate::processGeometryChangeEvent. + if (isMove && (!q->windowHandle() || q->testAttribute(Qt::WA_DontShowOnScreen))) { QMoveEvent e(q->pos(), oldPos); QApplication::sendEvent(q, &e); }