diff -Nru ukui-session-manager-3.0.4/debian/changelog ukui-session-manager-3.0.5/debian/changelog --- ukui-session-manager-3.0.4/debian/changelog 2021-08-05 07:45:20.000000000 +0000 +++ ukui-session-manager-3.0.5/debian/changelog 2021-09-30 07:16:58.000000000 +0000 @@ -1,3 +1,9 @@ +ukui-session-manager (3.0.5-1) unstable; urgency=medium + + * New upstream bugfix release. (LP: #1945570) + + -- handsome_feng Thu, 30 Sep 2021 15:16:58 +0800 + ukui-session-manager (3.0.4-1) unstable; urgency=medium * New upstream release. diff -Nru ukui-session-manager-3.0.4/tools/main.cpp ukui-session-manager-3.0.5/tools/main.cpp --- ukui-session-manager-3.0.4/tools/main.cpp 2021-08-18 08:47:37.000000000 +0000 +++ ukui-session-manager-3.0.5/tools/main.cpp 2021-09-30 07:41:14.000000000 +0000 @@ -141,7 +141,7 @@ } file_backup.close(); if (flock(fd_backup, LOCK_UN) == 0) { - qDebug() << "unlock sucess."; + qDebug() << "unlock success."; } else { qDebug() << "unlock fail."; } @@ -159,7 +159,7 @@ } file_backup.close(); if (flock(fd_update, LOCK_UN) == 0) { - qDebug() << "unlock sucess."; + qDebug() << "unlock success."; } else { qDebug() << "unlock fail."; } diff -Nru ukui-session-manager-3.0.4/tools/powerprovider.cpp ukui-session-manager-3.0.5/tools/powerprovider.cpp --- ukui-session-manager-3.0.4/tools/powerprovider.cpp 2021-08-05 07:44:44.000000000 +0000 +++ ukui-session-manager-3.0.5/tools/powerprovider.cpp 2021-09-30 07:41:53.000000000 +0000 @@ -105,7 +105,7 @@ msgBox.setIcon(QMessageBox::Warning); msgBox.setWindowFlags(Qt::WindowStaysOnTopHint); // msgBox.setModal(false); - msgBox.setText(QObject::tr("some applications are running and they dont want you to do this.")); + msgBox.setText(QObject::tr("some applications are running and they don't want you to do this.")); QPushButton *stillButton = msgBox.addButton(QObject::tr("Still to do!"), QMessageBox::ActionRole); QPushButton *giveupButton = msgBox.addButton(QObject::tr("give up"), QMessageBox::RejectRole); diff -Nru ukui-session-manager-3.0.4/translations/zh_CN.ts ukui-session-manager-3.0.5/translations/zh_CN.ts --- ukui-session-manager-3.0.4/translations/zh_CN.ts 2021-08-18 08:30:14.000000000 +0000 +++ ukui-session-manager-3.0.5/translations/zh_CN.ts 2021-09-30 07:42:05.000000000 +0000 @@ -161,7 +161,7 @@ - some applications are running and they dont want you to do this. + some applications are running and they don't want you to do this. 一些程序正在运行,而且它不希望你继续该操作。 diff -Nru ukui-session-manager-3.0.4/ukui-session/main.cpp ukui-session-manager-3.0.5/ukui-session/main.cpp --- ukui-session-manager-3.0.4/ukui-session/main.cpp 2021-08-18 08:47:37.000000000 +0000 +++ ukui-session-manager-3.0.5/ukui-session/main.cpp 2021-09-30 08:07:08.000000000 +0000 @@ -185,7 +185,7 @@ { qInstallMessageHandler(myMessageOutput); //initUkuiLog4qt("ukui-session"); - qDebug() << "UKUI session manager start."; + qDebug() << "---------------------------------------------------------UKUI session manager start.---------------------------------------------------------"; SessionApplication app(argc, argv); Set4KScreenScale(); diff -Nru ukui-session-manager-3.0.4/ukui-session/modulemanager.cpp ukui-session-manager-3.0.5/ukui-session/modulemanager.cpp --- ukui-session-manager-3.0.4/ukui-session/modulemanager.cpp 2021-08-18 08:47:46.000000000 +0000 +++ ukui-session-manager-3.0.5/ukui-session/modulemanager.cpp 2021-09-30 08:07:08.000000000 +0000 @@ -86,7 +86,8 @@ isPanelStarted(false), isDesktopStarted(false), isWMStarted(false), - isCompsiteStarted(false) + isCompsiteStarted(false), + m_ukuiKwinExisted(false) { /*const QFile file_installer("/etc/xdg/autostart/kylin-os-installer.desktop"); if(file_installer.exists()){ @@ -135,16 +136,17 @@ QString file_manager; QString wm_notfound; if (QGSettings::isSchemaInstalled(id)) { - const QGSettings* gs = new QGSettings(SESSION_REQUIRED_COMPONENTS,SESSION_REQUIRED_COMPONENTS_PATH,this); + const QGSettings *gs = new QGSettings(SESSION_REQUIRED_COMPONENTS,SESSION_REQUIRED_COMPONENTS_PATH,this); if(gs == NULL){ qDebug()<<"QGSettings init error"; - free(&gs); return; } window_manager = gs->get("windowmanager").toString() + ".desktop"; panel = gs->get("panel").toString() + ".desktop"; file_manager = gs->get("filemanager").toString() + ".desktop"; wm_notfound = gs->get("windowmanager").toString(); + + delete gs; } else { //gsetting安装失败,或无法获取,设置默认值 qDebug() << "从gsettings 中或取值失败,设置默认值"; @@ -193,16 +195,35 @@ if (wm_found == false) { QFileInfo check_ukwm("/usr/share/applications/ukwm.desktop"); QFileInfo check_ukuikwin("/usr/share/applications/ukui-kwin.desktop"); - if(check_ukwm.exists()) { - window_manager = "ukwm.desktop"; - mWindowManager.load("/usr/share/applications/ukwm.desktop"); - }else if(check_ukuikwin.exists()) { + if (check_ukuikwin.exists()) { window_manager = "ukui-kwin.desktop"; mWindowManager.load("/usr/share/applications/ukui-kwin.desktop"); + } else if (check_ukwm.exists()) { + window_manager = "ukwm.desktop"; + mWindowManager.load("/usr/share/applications/ukwm.desktop"); + } else { + qDebug() << "No WindowManager founded."; + return; } wm_found = true; } + QString wmFilePath = mWindowManager.fileName(); + if (!wmFilePath.isEmpty()) { + int pos = wmFilePath.lastIndexOf ("/"); + QString fileName = wmFilePath.right(wmFilePath.length() - pos - 1); + if (fileName == "ukui-kwin.desktop") { + qDebug() << "ukuikwin exist on this machine"; + m_ukuiKwinExisted = true; + } else { + qDebug() << "ukwm exist on this machine"; + m_ukuiKwinExisted = false; + } + } else if (wmFilePath.isEmpty()) { + qDebug() << "No WindowManager loaded."; + return; + } + //配置文件所给的窗口管理器找不到.desktop文件时,将所给QString设为可执行命令,创建一个desktop文件赋给mWindowManager // if (wm_found == false) { // mWindowManager = XdgDesktopFile(XdgDesktopFile::ApplicationType,"window-manager", wm_notfound); @@ -318,20 +339,23 @@ void ModuleManager::startCompsite(){ qDebug() << "Enter:: startCompsite"; - if(!isPanelStarted || !isDesktopStarted || !isWMStarted) return; - if(isCompsiteStarted) return; - isCompsiteStarted = true; + if (m_ukuiKwinExisted) { + if (!isPanelStarted || !isDesktopStarted || !isWMStarted) return; - // start composite - QDBusInterface dbus("org.ukui.KWin", "/Compositor", "org.ukui.kwin.Compositing", QDBusConnection::sessionBus()); + if (isCompsiteStarted) return; + isCompsiteStarted = true; - if (!dbus.isValid()) { - qWarning() << "dbusCall: QDBusInterface is invalid"; - return; + // start composite + QDBusInterface dbus("org.ukui.KWin", "/Compositor", "org.ukui.kwin.Compositing", QDBusConnection::sessionBus()); + + if (!dbus.isValid()) { + qWarning() << "dbusCall: QDBusInterface is invalid"; + return; + } + qDebug() << "Start composite"; + dbus.call("resume"); } - qDebug() << "Start composite"; - dbus.call("resume"); timerUpdate(); } diff -Nru ukui-session-manager-3.0.4/ukui-session/modulemanager.h ukui-session-manager-3.0.5/ukui-session/modulemanager.h --- ukui-session-manager-3.0.4/ukui-session/modulemanager.h 2021-08-18 08:47:46.000000000 +0000 +++ ukui-session-manager-3.0.5/ukui-session/modulemanager.h 2021-09-30 08:07:08.000000000 +0000 @@ -105,6 +105,7 @@ bool mWmStarted; bool mTrayStarted; + bool m_ukuiKwinExisted; QEventLoop* mWaitLoop; XdgDesktopFileList mInitialization; diff -Nru ukui-session-manager-3.0.4/ukui-session/usminhibit.cpp ukui-session-manager-3.0.5/ukui-session/usminhibit.cpp --- ukui-session-manager-3.0.4/ukui-session/usminhibit.cpp 2021-08-05 07:44:44.000000000 +0000 +++ ukui-session-manager-3.0.5/ukui-session/usminhibit.cpp 2021-09-30 07:42:16.000000000 +0000 @@ -141,7 +141,7 @@ QStringList usminhibit::getinhibitor(){ //do not show inhibitorName to user - //in case we dont know who is inhibiting + //in case we don't know who is inhibiting QHashIterator i(hash); QStringList inhibitors; while (i.hasNext()) {