Skip to content

Commit 0de1c2b

Browse files
committed
Allow to pass the QScreen pointer to the QML Window
Some Qt objects may return a QScreen pointer. Allow this pointer to be accepted as an argument for `Window.screen` on the QML side.
1 parent 711b4d7 commit 0de1c2b

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/quick/items/qquickwindowmodule.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -548,8 +548,12 @@ QObject *QQuickWindowQmlImpl::screen() const
548548

549549
void QQuickWindowQmlImpl::setScreen(QObject *screen)
550550
{
551-
QQuickScreenInfo *screenWrapper = qobject_cast<QQuickScreenInfo *>(screen);
552-
QWindow::setScreen(screenWrapper ? screenWrapper->wrappedScreen() : nullptr);
551+
QScreen *newScreen = nullptr;
552+
if (QQuickScreenInfo *screenWrapper = qobject_cast<QQuickScreenInfo *>(screen))
553+
newScreen = screenWrapper->wrappedScreen();
554+
else if (QScreen *qScreen = qobject_cast<QScreen *>(screen))
555+
newScreen = qScreen;
556+
QWindow::setScreen(newScreen);
553557
}
554558

555559
QQuickWindowAttached *QQuickWindowQmlImpl::qmlAttachedProperties(QObject *object)

0 commit comments

Comments
 (0)