diff options
author | Giulio Camuffo <giuliocamuffo@gmail.com> | 2014-10-03 19:48:31 +0300 |
---|---|---|
committer | Giulio Camuffo <giulio.camuffo@jollamobile.com> | 2014-10-06 10:43:42 +0200 |
commit | 2ca1cc58f2f96425bd4feee4f838e0b943414e11 (patch) | |
tree | 6d70d356a5e837a8c886ececcb354a422c3e7e42 /src/controls/qquickmenu.cpp | |
parent | 758026dea694b5c833413e8cf787b6cb48b57999 (diff) | |
download | qtquickcontrols-2ca1cc58f2f96425bd4feee4f838e0b943414e11.tar.gz |
Get the popup mouse position for the right screen
If the parent window of the popup is not on the primary screen
use the right one to get the mouse position.
Change-Id: Ib9929e6fdf90dfae2457486edc9504719bdaad8b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Diffstat (limited to 'src/controls/qquickmenu.cpp')
-rw-r--r-- | src/controls/qquickmenu.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/controls/qquickmenu.cpp b/src/controls/qquickmenu.cpp index 0b31b78b..faa9b1d1 100644 --- a/src/controls/qquickmenu.cpp +++ b/src/controls/qquickmenu.cpp @@ -367,14 +367,16 @@ QQuickWindow *QQuickMenu::findParentWindow() void QQuickMenu::popup() { - QPoint mousePos = QCursor::pos(); + QQuickWindow *parentWindow = findParentWindow(); + QScreen *screen = parentWindow ? parentWindow->screen() : qGuiApp->primaryScreen(); + QPoint mousePos = QCursor::pos(screen); if (mousePos.x() == int(qInf())) { // ### fixme: no mouse pos registered. Get pos from touch... - mousePos = qGuiApp->primaryScreen()->availableGeometry().center(); + mousePos = screen->availableGeometry().center(); } - if (QQuickWindow *parentWindow = findParentWindow()) + if (parentWindow) mousePos = parentWindow->mapFromGlobal(mousePos); __popup(QRectF(mousePos.x(), mousePos.y(), 0, 0)); |