Don't return an associated screen for embedded widgets
Widgets embedded in a graphics view via QGraphicsProxyWidget don't have an associated screen, even though they are top level windows in the widget hierarchy. Their screen has to be based on the screen of the toplevel widget they are embedded in. This fallback is taken care of by QWidget::screen already. Task-number: QTBUG-20531 Pick-to: 6.3 Change-Id: I77af092b2f8e6322662499be464eec40cfd9ac1c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>bb10
parent
55928821d1
commit
87a62e46e4
|
|
@ -1104,6 +1104,11 @@ QWindow *QWidgetPrivate::_q_closestWindowHandle() const
|
|||
|
||||
QScreen *QWidgetPrivate::associatedScreen() const
|
||||
{
|
||||
#if QT_CONFIG(graphicsview)
|
||||
// embedded widgets never have a screen associated, let QWidget::screen fall back to toplevel
|
||||
if (nearestGraphicsProxyWidget(q_func()))
|
||||
return nullptr;
|
||||
#endif
|
||||
if (auto window = windowHandle(WindowHandleMode::Closest))
|
||||
return window->screen();
|
||||
return nullptr;
|
||||
|
|
|
|||
Loading…
Reference in New Issue