diff --git a/src/framework/ui/imainwindow.h b/src/framework/ui/imainwindow.h index 7149c380b6..4426a24f07 100644 --- a/src/framework/ui/imainwindow.h +++ b/src/framework/ui/imainwindow.h @@ -42,7 +42,7 @@ public: virtual bool isFullScreen() const = 0; virtual void toggleFullScreen() = 0; - virtual const QScreen* screen() const = 0; + virtual QScreen* screen() const = 0; }; } diff --git a/src/framework/ui/tests/mocks/mainwindowprovidermock.h b/src/framework/ui/tests/mocks/mainwindowprovidermock.h index 748fc39c61..1a1a23bd14 100644 --- a/src/framework/ui/tests/mocks/mainwindowprovidermock.h +++ b/src/framework/ui/tests/mocks/mainwindowprovidermock.h @@ -38,7 +38,7 @@ public: MOCK_METHOD(bool, isFullScreen, (), (const, override)); MOCK_METHOD(void, toggleFullScreen, (), (override)); - MOCK_METHOD(const QScreen*, screen, (), (const, override)); + MOCK_METHOD(QScreen*, screen, (), (const, override)); }; } diff --git a/src/framework/ui/view/mainwindowprovider.cpp b/src/framework/ui/view/mainwindowprovider.cpp index 3290d70939..d221f2ccc8 100644 --- a/src/framework/ui/view/mainwindowprovider.cpp +++ b/src/framework/ui/view/mainwindowprovider.cpp @@ -130,7 +130,7 @@ void MainWindowProvider::toggleFullScreen() } } -const QScreen* MainWindowProvider::screen() const +QScreen* MainWindowProvider::screen() const { return m_window ? m_window->screen() : nullptr; } diff --git a/src/framework/ui/view/mainwindowprovider.h b/src/framework/ui/view/mainwindowprovider.h index d36d4eda4e..4c3539f7a5 100644 --- a/src/framework/ui/view/mainwindowprovider.h +++ b/src/framework/ui/view/mainwindowprovider.h @@ -55,7 +55,7 @@ public: bool isFullScreen() const override; void toggleFullScreen() override; - const QScreen* screen() const override; + QScreen* screen() const override; signals: void windowChanged(); diff --git a/src/framework/uicomponents/view/popupwindow/popupwindow_qquickview.cpp b/src/framework/uicomponents/view/popupwindow/popupwindow_qquickview.cpp index 98fe5c9678..a3606ccd5b 100644 --- a/src/framework/uicomponents/view/popupwindow/popupwindow_qquickview.cpp +++ b/src/framework/uicomponents/view/popupwindow/popupwindow_qquickview.cpp @@ -114,7 +114,8 @@ void PopupWindow_QQuickView::forceActiveFocus() void PopupWindow_QQuickView::show(QPoint p) { m_view->setPosition(p); - + m_view->setScreen(mainWindow()->screen()); + QWindow* parent = m_parentWindow ? m_parentWindow : interactiveProvider()->topWindow(); m_view->setTransientParent(parent); diff --git a/src/framework/uicomponents/view/popupwindow/popupwindow_qquickview.h b/src/framework/uicomponents/view/popupwindow/popupwindow_qquickview.h index 9a6103f119..0360060b5e 100644 --- a/src/framework/uicomponents/view/popupwindow/popupwindow_qquickview.h +++ b/src/framework/uicomponents/view/popupwindow/popupwindow_qquickview.h @@ -28,6 +28,7 @@ #include "modularity/ioc.h" #include "ui/iinteractiveprovider.h" +#include "ui/imainwindow.h" namespace mu::uicomponents { class PopupWindow_QQuickView : public IPopupWindow @@ -35,6 +36,7 @@ class PopupWindow_QQuickView : public IPopupWindow Q_OBJECT INJECT(uicomponents, ui::IInteractiveProvider, interactiveProvider) + INJECT(uicomponents, ui::IMainWindow, mainWindow) public: explicit PopupWindow_QQuickView(QObject* parent = nullptr);