diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index f19a9d2e8ee..3fe3c6951f6 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -2556,8 +2556,7 @@ QWidget *QApplication::desktop(QScreen *screen) } if (!screen) return qt_desktopWidget; - QDesktopWidgetPrivate *dwp = static_cast(qt_widget_private(qt_desktopWidget)); - return dwp->widgetForScreen(screen); + return qt_desktopWidget->widgetForScreen(screen); } /* diff --git a/src/widgets/kernel/qdesktopwidget.cpp b/src/widgets/kernel/qdesktopwidget.cpp index db8c33c4980..5c781222e16 100644 --- a/src/widgets/kernel/qdesktopwidget.cpp +++ b/src/widgets/kernel/qdesktopwidget.cpp @@ -107,6 +107,17 @@ QDesktopWidget::QDesktopWidget() QDesktopWidget::~QDesktopWidget() = default; +/*! + \internal + Returns the Qt::Desktop type widget for \a qScreen. +*/ +QWidget *QDesktopWidget::widgetForScreen(QScreen *qScreen) const +{ + Q_D(const QDesktopWidget); + return d->screenWidgets.value(qScreen); +} + + QT_END_NAMESPACE #include "moc_qdesktopwidget_p.cpp" diff --git a/src/widgets/kernel/qdesktopwidget_p.h b/src/widgets/kernel/qdesktopwidget_p.h index c17036b9d0a..5e8c2560406 100644 --- a/src/widgets/kernel/qdesktopwidget_p.h +++ b/src/widgets/kernel/qdesktopwidget_p.h @@ -68,25 +68,20 @@ public: QDesktopWidget(); ~QDesktopWidget(); + QWidget *widgetForScreen(QScreen *qScreen) const; private: Q_DISABLE_COPY(QDesktopWidget) Q_DECLARE_PRIVATE(QDesktopWidget) - - friend class QApplication; - friend class QApplicationPrivate; }; -class QDesktopWidgetPrivate : public QWidgetPrivate { +class QDesktopWidgetPrivate : public QWidgetPrivate +{ Q_DECLARE_PUBLIC(QDesktopWidget) public: ~QDesktopWidgetPrivate(); void updateScreens(); - QWidget *widgetForScreen(QScreen *qScreen) const - { - return screenWidgets.value(qScreen); - } QFlatMap screenWidgets; };