diff --git a/qt5-ukui-platformtheme/qt5-ukui-platformtheme.pro b/qt5-ukui-platformtheme/qt5-ukui-platformtheme.pro index 41465be..e7c7b9d 100644 --- a/qt5-ukui-platformtheme/qt5-ukui-platformtheme.pro +++ b/qt5-ukui-platformtheme/qt5-ukui-platformtheme.pro @@ -15,7 +15,7 @@ TARGET = qt5-ukui-platformtheme TEMPLATE = lib CONFIG += plugin CONFIG += c++11 link_pkgconfig lrelease -PKGCONFIG += gsettings-qt Qt5XdgIconLoader peony fontconfig freetype2 +PKGCONFIG += gsettings-qt Qt5XdgIconLoader peony kysdk-waylandhelper fontconfig freetype2 LIBS += -lX11 -lfontconfig -lfreetype include(../libqt5-ukui-style/libqt5-ukui-style.pri) diff --git a/qt5-ukui-platformtheme/widget/filedialog/kyfiledialog.cpp b/qt5-ukui-platformtheme/widget/filedialog/kyfiledialog.cpp index 92421bc..0e734ab 100644 --- a/qt5-ukui-platformtheme/widget/filedialog/kyfiledialog.cpp +++ b/qt5-ukui-platformtheme/widget/filedialog/kyfiledialog.cpp @@ -5,6 +5,7 @@ #include "kyfiledialogprivate.h" #include "sidebar.h" #include "pathbar.h" +#include "ukuistylehelper/ukuistylehelper.h" #include #include #include @@ -2470,12 +2471,17 @@ bool KyFileDialogHelper::show(Qt::WindowFlags windowFlags, Qt::WindowModality wi } } - MotifWmHints hints; - hints.flags = MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS; - hints.functions = MWM_FUNC_ALL; - hints.decorations = MWM_DECOR_BORDER; - XAtomHelper::getInstance()->setWindowMotifHint(mKyFileDialog->winId(), hints); - + QString platform = QGuiApplication::platformName(); + if(platform.startsWith(QLatin1String("wayland"),Qt::CaseInsensitive)) + { + kdk::UkuiStyleHelper::self()->removeHeader(mKyFileDialog); + } else { + MotifWmHints hints; + hints.flags = MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS; + hints.functions = MWM_FUNC_ALL; + hints.decorations = MWM_DECOR_BORDER; + XAtomHelper::getInstance()->setWindowMotifHint(mKyFileDialog->winId(), hints); + } mKyFileDialog->delayShow(); return true; } diff --git a/qt5-ukui-platformtheme/widget/messagebox/message-box.cpp b/qt5-ukui-platformtheme/widget/messagebox/message-box.cpp index 41f4f00..e6abd1b 100644 --- a/qt5-ukui-platformtheme/widget/messagebox/message-box.cpp +++ b/qt5-ukui-platformtheme/widget/messagebox/message-box.cpp @@ -32,6 +32,7 @@ #include #include #include +#include "ukuistylehelper/ukuistylehelper.h" #include "private/qlabel_p.h" #include "private/qdialog_p.h" @@ -1479,11 +1480,18 @@ bool MessageBoxHelper::show(Qt::WindowFlags windowFlags, Qt::WindowModality wind // } } */ - MotifWmHints hints; - hints.flags = MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS; - hints.functions = MWM_FUNC_ALL; - hints.decorations = MWM_DECOR_BORDER; - XAtomHelper::getInstance()->setWindowMotifHint(mMessageBox->winId(), hints); + + QString platform = QGuiApplication::platformName(); + if(platform.startsWith(QLatin1String("wayland"),Qt::CaseInsensitive)) + { + kdk::UkuiStyleHelper::self()->removeHeader(mMessageBox); + } else { + MotifWmHints hints; + hints.flags = MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS; + hints.functions = MWM_FUNC_ALL; + hints.decorations = MWM_DECOR_BORDER; + XAtomHelper::getInstance()->setWindowMotifHint(mMessageBox->winId(), hints); + } foreach (QAbstractButton *ab, mMessageBox->buttons()) { if (QPushButton *pb = qobject_cast(ab)) {