parent
8c8c297df6
commit
92e2854c47
|
@ -35,6 +35,7 @@ Build-Depends: debhelper-compat (= 12),
|
||||||
libavformat-dev,
|
libavformat-dev,
|
||||||
qtmultimedia5-dev,
|
qtmultimedia5-dev,
|
||||||
libkysdk-systime-dev,
|
libkysdk-systime-dev,
|
||||||
|
libkysdk-waylandhelper-dev,
|
||||||
liblightdm-qt5-3-dev,
|
liblightdm-qt5-3-dev,
|
||||||
libsystemd-dev,
|
libsystemd-dev,
|
||||||
libssl-dev,
|
libssl-dev,
|
||||||
|
|
|
@ -0,0 +1,124 @@
|
||||||
|
From: =?utf-8?b?5p2o5pWP?= <yangmin@kylinos.cn>
|
||||||
|
Date: Mon, 3 Jun 2024 10:08:07 +0000
|
||||||
|
Subject: =?utf-8?q?!85_fixbug_Merge_pull_request_!85_from_=E6=9D=A8?=
|
||||||
|
=?utf-8?q?=E6=95=8F/openkylin/nile?=
|
||||||
|
|
||||||
|
---
|
||||||
|
src/CMakeLists.txt | 6 ++++--
|
||||||
|
src/lock-backend/main.cpp | 8 +++++++-
|
||||||
|
src/lock-dialog/main.cpp | 8 +++++++-
|
||||||
|
src/widgets/fullbackgroundwidget.cpp | 11 ++++++++---
|
||||||
|
4 files changed, 26 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||||
|
index 00a754b..5f19b20 100644
|
||||||
|
--- a/src/CMakeLists.txt
|
||||||
|
+++ b/src/CMakeLists.txt
|
||||||
|
@@ -9,6 +9,7 @@ pkg_check_modules(GLIB2 REQUIRED glib-2.0 gio-2.0)
|
||||||
|
|
||||||
|
find_package(X11 REQUIRED)
|
||||||
|
pkg_check_modules(KYSDKSYSTIME REQUIRED kysdk-systime)
|
||||||
|
+pkg_check_modules(KYSDKWAYLANDHELPER REQUIRED kysdk-waylandhelper)
|
||||||
|
pkg_check_modules(XTST REQUIRED xtst)
|
||||||
|
pkg_check_modules(XCB REQUIRED xcb)
|
||||||
|
pkg_check_modules(QGS REQUIRED gsettings-qt)
|
||||||
|
@@ -115,8 +116,8 @@ set(dialog_SRC
|
||||||
|
)
|
||||||
|
add_executable(ukui-screensaver-dialog ${dialog_SRC})
|
||||||
|
add_definitions(-DAPP_API_MAJOR=0 -DAPP_API_MINOR=11 -DAPP_API_FUNC=0)
|
||||||
|
-target_include_directories(ukui-screensaver-dialog PRIVATE ${KYSDKSYSTIME_INCLUDE_DIRS})
|
||||||
|
-target_link_directories(ukui-screensaver-dialog PRIVATE ${KYSDKSYSTIME_LIBRARY_DIRS})
|
||||||
|
+target_include_directories(ukui-screensaver-dialog PRIVATE ${KYSDKSYSTIME_INCLUDE_DIRS} ${KYSDKWAYLANDHELPER_INCLUDE_DIRS})
|
||||||
|
+target_link_directories(ukui-screensaver-dialog PRIVATE ${KYSDKSYSTIME_LIBRARY_DIRS} ${KYSDKWAYLANDHELPER_LIBRARY_DIRS})
|
||||||
|
target_link_libraries(ukui-screensaver-dialog
|
||||||
|
Qt5::Core
|
||||||
|
Qt5::Widgets
|
||||||
|
@@ -128,6 +129,7 @@ target_link_libraries(ukui-screensaver-dialog
|
||||||
|
KF5::WaylandClient
|
||||||
|
KF5::WindowSystem
|
||||||
|
${KYSDKSYSTIME_LIBRARIES}
|
||||||
|
+ ${KYSDKWAYLANDHELPER_LIBRARIES}
|
||||||
|
${EXTRA_LIBS}
|
||||||
|
VirtualKeyboard
|
||||||
|
Screensaver
|
||||||
|
diff --git a/src/lock-backend/main.cpp b/src/lock-backend/main.cpp
|
||||||
|
index 1b2dcc7..27916bc 100644
|
||||||
|
--- a/src/lock-backend/main.cpp
|
||||||
|
+++ b/src/lock-backend/main.cpp
|
||||||
|
@@ -38,7 +38,13 @@ int main(int argc, char *argv[])
|
||||||
|
initUkuiLog4qt("ukui-screensaver-backend");
|
||||||
|
// 重启或关机时不被session关掉
|
||||||
|
qunsetenv("SESSION_MANAGER");
|
||||||
|
- QString singleId = QString("ukui-screensaver-backend"+QLatin1String(getenv("DISPLAY")));
|
||||||
|
+ QString strDisplay = "";
|
||||||
|
+ if (QString(qgetenv("XDG_SESSION_TYPE")) == "wayland") {
|
||||||
|
+ strDisplay = QLatin1String(getenv("WAYLAND_DISPLAY"));
|
||||||
|
+ } else {
|
||||||
|
+ strDisplay = QLatin1String(getenv("DISPLAY"));
|
||||||
|
+ }
|
||||||
|
+ QString singleId = QString("ukui-screensaver-backend"+strDisplay);
|
||||||
|
QtSingleCoreApplication a(singleId, argc, argv);
|
||||||
|
if (a.isRunning()) {
|
||||||
|
qDebug() << "There is an instance running";
|
||||||
|
diff --git a/src/lock-dialog/main.cpp b/src/lock-dialog/main.cpp
|
||||||
|
index 6a7dfac..7469e11 100644
|
||||||
|
--- a/src/lock-dialog/main.cpp
|
||||||
|
+++ b/src/lock-dialog/main.cpp
|
||||||
|
@@ -77,7 +77,13 @@ int main(int argc, char *argv[])
|
||||||
|
if (isGreeterMode())
|
||||||
|
DisplayService::instance(lockDialogModel)->setCurUserName(lockDialogModel->defaultUserName());
|
||||||
|
|
||||||
|
- QString id = QString("ukui-screensaver-dialog"+QLatin1String(getenv("DISPLAY")));
|
||||||
|
+ QString strDisplay = "";
|
||||||
|
+ if (QString(qgetenv("XDG_SESSION_TYPE")) == "wayland") {
|
||||||
|
+ strDisplay = QLatin1String(getenv("WAYLAND_DISPLAY"));
|
||||||
|
+ } else {
|
||||||
|
+ strDisplay = QLatin1String(getenv("DISPLAY"));
|
||||||
|
+ }
|
||||||
|
+ QString id = QString("ukui-screensaver-dialog"+strDisplay);
|
||||||
|
QtSingleApplication app(id, argc, argv);
|
||||||
|
if (app.isRunning()) {
|
||||||
|
QString strArguments = QApplication::arguments().join(",");
|
||||||
|
diff --git a/src/widgets/fullbackgroundwidget.cpp b/src/widgets/fullbackgroundwidget.cpp
|
||||||
|
index 01d63d1..7cfee1e 100644
|
||||||
|
--- a/src/widgets/fullbackgroundwidget.cpp
|
||||||
|
+++ b/src/widgets/fullbackgroundwidget.cpp
|
||||||
|
@@ -47,6 +47,8 @@
|
||||||
|
#include "screensaverwidget.h"
|
||||||
|
#include "displayservice.h"
|
||||||
|
#include "configuration.h"
|
||||||
|
+#include <windowmanager/windowmanager.h>
|
||||||
|
+using namespace kdk;
|
||||||
|
|
||||||
|
FullBackgroundWidget::FullBackgroundWidget(LockDialogModel *model, QWidget *parent)
|
||||||
|
: QWidget(parent), m_modelLockDialog(model)
|
||||||
|
@@ -131,7 +133,9 @@ void FullBackgroundWidget::initUI()
|
||||||
|
}
|
||||||
|
|
||||||
|
setWindowFlags(Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint);
|
||||||
|
- KWindowSystem::setType(this->winId(), NET::ScreenLock);
|
||||||
|
+ QTimer::singleShot(100, this, [=]() {
|
||||||
|
+ WindowManager::setWindowLayer(this->windowHandle(), WindowLayer::ScreenLock);
|
||||||
|
+ });
|
||||||
|
|
||||||
|
// 登录模式下监听屏幕插拔
|
||||||
|
if (isGreeterMode()) {
|
||||||
|
@@ -458,6 +462,7 @@ void FullBackgroundWidget::onCloseScreensaver()
|
||||||
|
Q_EMIT m_modelLockDialog->lockStateChanged(false);
|
||||||
|
stopDelayLockScreen();
|
||||||
|
screenStatus = UNDEFINED;
|
||||||
|
+ m_isBlank = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FullBackgroundWidget::onDesktopResized()
|
||||||
|
@@ -631,8 +636,8 @@ void FullBackgroundWidget::showEvent(QShowEvent *event)
|
||||||
|
{
|
||||||
|
if (QX11Info::isPlatformX11())
|
||||||
|
tryGrabKeyboard();
|
||||||
|
- QTimer::singleShot(10, this, [=]() {
|
||||||
|
- KWindowSystem::setType(this->winId(), NET::ScreenLock);
|
||||||
|
+ QTimer::singleShot(100, this, [=]() {
|
||||||
|
+ WindowManager::setWindowLayer(this->windowHandle(), WindowLayer::ScreenLock);
|
||||||
|
m_lockWidget->updateFont();
|
||||||
|
m_lockWidget->updateFontSize();
|
||||||
|
});
|
|
@ -30,3 +30,4 @@
|
||||||
0030-82-fixbug.patch
|
0030-82-fixbug.patch
|
||||||
0031-83-fixbug.patch
|
0031-83-fixbug.patch
|
||||||
0032-84-fixbug.patch
|
0032-84-fixbug.patch
|
||||||
|
0033-85-fixbug.patch
|
||||||
|
|
Loading…
Reference in New Issue