diff --git a/frame/window/mainwindowbase.cpp b/frame/window/mainwindowbase.cpp index 085a1d1ec..8e7b4f2fc 100644 --- a/frame/window/mainwindowbase.cpp +++ b/frame/window/mainwindowbase.cpp @@ -37,12 +37,12 @@ DGUI_USE_NAMESPACE MainWindowBase::MainWindowBase(MultiScreenWorker *multiScreenWorker, QWidget *parent) : DBlurEffectWidget(parent) + , m_platformWindowHandle(this) , m_displayMode(Dock::DisplayMode::Efficient) , m_position(Dock::Position::Bottom) , m_dragWidget(new DragWidget(this)) , m_multiScreenWorker(multiScreenWorker) , m_updateDragAreaTimer(new QTimer(this)) - , m_platformWindowHandle(this) , m_shadowMaskOptimizeTimer(new QTimer(this)) , m_isShow(false) , m_order(0) diff --git a/frame/window/mainwindowbase.h b/frame/window/mainwindowbase.h index 66a0995f2..17471a982 100644 --- a/frame/window/mainwindowbase.h +++ b/frame/window/mainwindowbase.h @@ -89,13 +89,15 @@ private Q_SLOTS: void onCompositeChanged(); void onThemeTypeChanged(DGuiApplicationHelper::ColorType themeType); +protected: + DPlatformWindowHandle m_platformWindowHandle; + private: Dock::DisplayMode m_displayMode; Dock::Position m_position; DragWidget *m_dragWidget; MultiScreenWorker *m_multiScreenWorker; QTimer *m_updateDragAreaTimer; - DPlatformWindowHandle m_platformWindowHandle; QTimer *m_shadowMaskOptimizeTimer; bool m_isShow; int m_order; diff --git a/frame/window/traymainwindow.cpp b/frame/window/traymainwindow.cpp index fdaa307ac..feedef64d 100644 --- a/frame/window/traymainwindow.cpp +++ b/frame/window/traymainwindow.cpp @@ -121,11 +121,6 @@ int TrayMainWindow::dockSpace() const return 0; } -void TrayMainWindow::updateRadius(int borderRadius) -{ - m_trayManager->updateBorderRadius(borderRadius); -} - QSize TrayMainWindow::suitableSize(const Dock::Position &pos, const int &, const double &) const { return m_trayManager->suitableSize(pos); @@ -134,11 +129,15 @@ QSize TrayMainWindow::suitableSize(const Dock::Position &pos, const int &, const void TrayMainWindow::initUI() { m_trayManager->move(0, 0); + m_trayManager->updateBorderRadius(MainWindowBase::m_platformWindowHandle.windowRadius()); } void TrayMainWindow::initConnection() { connect(m_trayManager, &TrayManagerWindow::requestUpdate, this, &TrayMainWindow::onRequestUpdate); + connect(&(MainWindowBase::m_platformWindowHandle), &DTK_NAMESPACE::Widget::DPlatformWindowHandle::windowRadiusChanged, m_trayManager, [=]{ + m_trayManager->updateBorderRadius(MainWindowBase::m_platformWindowHandle.windowRadius()); + }); } void TrayMainWindow::onRequestUpdate() diff --git a/frame/window/traymainwindow.h b/frame/window/traymainwindow.h index 113665a0c..f3f38210a 100644 --- a/frame/window/traymainwindow.h +++ b/frame/window/traymainwindow.h @@ -34,7 +34,6 @@ public: protected: int dockSpace() const override; - void updateRadius(int borderRadius) override; private: void initUI();