Description: lxqtpanel: Fix wrongly positioned popups Avoid the usage the QWidget::mapToGlobal(), which is unreliable sometimes. Author: Palo Kisa Origin: backport Bug: https://github.com/lxde/lxqt/issues/1076 Bug-Ubuntu: https://pad.lv/1527013 Applied-Upstream: commit:7391172 Last-Update: 2018-02-05 --- a/panel/lxqtpanel.cpp +++ b/panel/lxqtpanel.cpp @@ -987,7 +987,8 @@ void LXQtPanel::setReserveSpace(bool res ************************************************/ QRect LXQtPanel::globalGometry() const { - return QRect(mapToGlobal(QPoint(0, 0)), this->size()); + // panel is the the top-most widget/window, no calculation needed + return geometry(); } @@ -1204,7 +1205,8 @@ QRect LXQtPanel::calculatePopupWindowPos return QRect(); } - return calculatePopupWindowPos(panel_plugin->mapToGlobal(QPoint(0, 0)), windowSize); + // Note: assuming there are not contentMargins around the "BackgroundWidget" (LXQtPanelWidget) + return calculatePopupWindowPos(globalGometry().topLeft() + panel_plugin->geometry().topLeft(), windowSize); }