--- src/dialogs/qdialog.cpp +++ src/dialogs/qdialog.cpp @@ -803,7 +803,9 @@ w = w->topLevelWidget(); QRect desk; if ( w ) { - scrn = QApplication::desktop()->screenNumber( w ); + // Use mapToGlobal rather than geometry() in case w might + // be embedded in another application + scrn = QApplication::desktop()->screenNumber( w->mapToGlobal( QPoint(0,0) ) ); } else if ( QApplication::desktop()->isVirtualDesktop() ) { scrn = QApplication::desktop()->screenNumber( QCursor::pos() ); } else {