From a2acaebfb02879ce5907077381210885f5c41e48 Mon Sep 17 00:00:00 2001
From: Joanna Hulboj <joanna.hulboj@isode.com>
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