summaryrefslogtreecommitdiff
path: root/src/controls/qquickmenu.cpp
diff options
context:
space:
mode:
authorGiulio Camuffo <giuliocamuffo@gmail.com>2014-10-03 19:48:31 +0300
committerGiulio Camuffo <giulio.camuffo@jollamobile.com>2014-10-06 10:43:42 +0200
commit2ca1cc58f2f96425bd4feee4f838e0b943414e11 (patch)
tree6d70d356a5e837a8c886ececcb354a422c3e7e42 /src/controls/qquickmenu.cpp
parent758026dea694b5c833413e8cf787b6cb48b57999 (diff)
downloadqtquickcontrols-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.cpp8
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));