QMenu’s paintEvent calls a private method
(QMenuPrivate::updateActionRects()) that itself calls another private
method (QMenuPrivate::popupGeometry()) that relies on
QDesktopWidget::availableGeometry(…). The fact that those methods are
private makes it rather complicated to override to fix the calculation
of the available geometry.

The best solution, that would fix the issue across the whole project,
would probably be to re-implement availableGeometry(…) itself by
subclassing QDesktopWidget, but then Qt internally retrieves the desktop
widget by calling QApplication::desktop(), so we need to override this
one too, which I really don’t know how to achieve.

I filed http://bugreports.qt.nokia.com/browse/QTBUG-18380 to track the
issue in Qt, thanks bp for the ASCII art which I shamelessly copied to
explain the monitors setup there.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/735937

Title:
  The Unity panel stays on the top of the "virtual monitor", even when
  there's no actual monitor covering that portion of the screen

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to