xcb: Compute correct global pointer position in startSystemMoveResize

QWindow::mapToGlobal() expects pos to be in device-independent pixels,
while in reality it's in device pixels.

We need to use QXcbWindow::mapToGlobal(), which operates on physical
pixels.

Change-Id: I8dcad5cc1f5d55df7950b36d97af5ce4b983ed54
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
This commit is contained in:
Vlad Zahorodnii 2020-01-30 12:05:46 +02:00
parent 6fee92770d
commit 9d49475e91

View File

@ -2375,8 +2375,7 @@ bool QXcbWindow::startSystemMoveResize(const QPoint &pos, int edges)
if (connection()->isUnity())
return false; // _NET_WM_MOVERESIZE on this WM is bouncy (WM bug?).
const QPoint globalPos = QHighDpi::toNativePixels(window()->mapToGlobal(pos), window()->screen());
doStartSystemMoveResize(globalPos, edges);
doStartSystemMoveResize(mapToGlobal(pos), edges);
}
return true;