From a2acaebfb02879ce5907077381210885f5c41e48 Mon Sep 17 00:00:00 2001 From: Joanna Hulboj Date: Mon, 16 Jan 2017 11:03:28 +0000 Subject: Prevent cursor from jumping to the wrong position when using Change Layout dialog Test-Information: Tested only on Windows with two monitors. Tested by opening Swift App on the first screen, next choose View->Change Layout, mouse cursor appears correctly on Change Layout dialog, next move Swift App to the second screen choose View->Change layout, mouse cursor appears correctly on Change Layout dialog. Change-Id: Ibb3e2ca1de6bcdb620104ff6b0940005ab85a827 diff --git a/Swift/QtUI/Trellis/QtGridSelectionDialog.cpp b/Swift/QtUI/Trellis/QtGridSelectionDialog.cpp index f67a4b8..1ca1953 100644 --- a/Swift/QtUI/Trellis/QtGridSelectionDialog.cpp +++ b/Swift/QtUI/Trellis/QtGridSelectionDialog.cpp @@ -135,7 +135,11 @@ void QtGridSelectionDialog::paintEvent(QPaintEvent*) { void QtGridSelectionDialog::showEvent(QShowEvent*) { int xPos = horizontalMargin + frameSize.width() + (padding + frameSize.width()) * (currentGridSize.width() - 1) - frameSize.width()/2; int yPos = verticalMargin + frameSize.height() + (padding + frameSize.height()) * (currentGridSize.height() - 1) - frameSize.height()/2; - QCursor::setPos(mapToGlobal(QPoint(xPos, yPos))); + // Apply the above offset to the global cursor position (which was positioned at a known position before showing the widget): + QPoint pos = QCursor::pos(); + pos.rx() += xPos; + pos.ry() += yPos; + QCursor::setPos(pos); setMouseTracking(true); } -- cgit v0.10.2-6-g49f6