DPMS related code must go!

ubuntu/noble
Aaron Rainbolt 1 year ago
parent dd5c5e0199
commit 928e094586

6
debian/changelog vendored

@ -1,3 +1,9 @@
lxqt-powermanagement (1.4.0-0ubuntu2) noble; urgency=medium
* Patched out DPMS-related code (it was causing constant crashes)
-- Aaron Rainbolt <arraybolt3@gmail.com> Tue, 14 Nov 2023 19:00:33 -0600
lxqt-powermanagement (1.4.0-0ubuntu1) noble; urgency=medium
* New upstream release.

@ -0,0 +1,167 @@
Description: Remove DPMS-related and screensaver-suspending-related code
lxqt-powermanagement added some code that allows the power manager to mess
with DPMS stuff. However it appears that DPMS is oftentimes not available in
Lubuntu, making lxqt-powermanagement crash over and over until it finally
gets disabled by LXQt until the next login. Some screensaver-related stuff
was also thrown in which seems unrelated but is in with a function that
sets DPMS timeouts. This patch removes all of that code, fixing the crashes.
Author: Aaron Rainbolt
Origin: ubuntu
Last-Update: 2023-11-14
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 07f9549..6215d9c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,22 +15,18 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF)
-set(LXQTBT_MINIMUM_VERSION "0.13.0")
set(KF5_MINIMUM_VERSION "5.101.0")
set(LXQT_MINIMUM_VERSION "1.4.0")
set(QT_MINIMUM_VERSION "5.15.0")
-find_package(lxqt-build-tools ${LXQTBT_MINIMUM_VERSION} REQUIRED)
find_package(Qt5DBus ${QT_MINIMUM_VERSION} REQUIRED)
find_package(Qt5LinguistTools ${QT_MINIMUM_VERSION} REQUIRED)
find_package(Qt5Svg ${QT_MINIMUM_VERSION} REQUIRED)
find_package(Qt5Widgets ${QT_MINIMUM_VERSION} REQUIRED)
-find_package(Qt5X11Extras ${QT_MINIMUM_VERSION} REQUIRED)
find_package(KF5IdleTime ${KF5_MINIMUM_VERSION} REQUIRED)
find_package(KF5Solid ${KF5_MINIMUM_VERSION} REQUIRED)
find_package(lxqt ${LXQT_MINIMUM_VERSION} REQUIRED)
find_package(lxqt-globalkeys-ui ${LXQT_GLOBALKEYS_MINIMUM_VERSION} REQUIRED)
-find_package(XCB REQUIRED COMPONENTS xcb-dpms xcb-screensaver)
message(STATUS "Building with Qt${Qt5Core_VERSION}")
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b29362a..177ddb1 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -57,8 +57,6 @@ target_link_libraries(lxqt-powermanagement
KF5::Solid
KF5::IdleTime
lxqt-globalkeys
- Qt5::X11Extras
- ${XCB_LIBRARIES}
)
install(TARGETS
diff --git a/src/idlenesswatcher.cpp b/src/idlenesswatcher.cpp
index ecaa641..cb9d9e1 100644
--- a/src/idlenesswatcher.cpp
+++ b/src/idlenesswatcher.cpp
@@ -24,7 +24,7 @@
#include "idlenesswatcher.h"
-#include <QGuiApplication>
+#include <QCoreApplication>
#include <QTimer>
#include <KIdleTime>
#include <Solid/Device>
@@ -35,9 +35,6 @@
#include <QDebug>
#include <LXQt/lxqtnotification.h>
#include <QObject>
-#include <QX11Info>
-#include <xcb/dpms.h>
-#include <xcb/screensaver.h>
IdlenessWatcher::IdlenessWatcher(QObject* parent):
Watcher(parent)
@@ -71,43 +68,14 @@ IdlenessWatcher::IdlenessWatcher(QObject* parent):
connect(&mPSettings, &LXQt::Settings::settingsChanged, this, &IdlenessWatcher::onSettingsChanged);
- // retrieve DPMS timeouts
- mDpmsStandby = mDpmsSuspend = mDpmsOff = 0;
- if (QGuiApplication::platformName() == QStringLiteral("xcb")) {
- xcb_connection_t* c = QX11Info::connection();
- xcb_dpms_get_timeouts_cookie_t cookie = xcb_dpms_get_timeouts(c);
- xcb_dpms_get_timeouts_reply_t* reply = xcb_dpms_get_timeouts_reply(c, cookie, nullptr);
- if (reply) {
- mDpmsStandby = reply->standby_timeout;
- mDpmsSuspend = reply->suspend_timeout;
- mDpmsOff = reply->off_timeout;
- free(reply);
- }
- }
-
setup();
}
IdlenessWatcher::~IdlenessWatcher()
{
- setDpmsTimeouts(true);
KIdleTime::instance()->removeAllIdleTimeouts();
}
-void IdlenessWatcher::setDpmsTimeouts(bool restore) {
- if (QGuiApplication::platformName() == QStringLiteral("xcb")) {
- xcb_connection_t* c = QX11Info::connection();
- if (restore) {
- xcb_dpms_set_timeouts(c, mDpmsStandby, mDpmsSuspend, mDpmsOff);
- xcb_screensaver_suspend(c, 0); // WARNING: This is not documented but works.
- }
- else {
- xcb_dpms_set_timeouts(c, 0, 0, 0);
- xcb_screensaver_suspend(c, XCB_SCREENSAVER_SUSPEND);
- }
- }
-}
-
void IdlenessWatcher::setup()
{
if(mPSettings.isIdlenessWatcherEnabled()) {
@@ -141,13 +109,6 @@ void IdlenessWatcher::setup()
milliseconds = 1000;
mIdleBacklightWatcher = KIdleTime::instance()->addIdleTimeout(milliseconds);
}
-
- // override DPMS settings
- setDpmsTimeouts(false);
- }
- else {
- // restore DPMS settings
- setDpmsTimeouts(true);
}
}
diff --git a/src/idlenesswatcher.h b/src/idlenesswatcher.h
index dce9cc6..af0b585 100644
--- a/src/idlenesswatcher.h
+++ b/src/idlenesswatcher.h
@@ -45,8 +45,6 @@ private Q_SLOTS:
void onSettingsChanged();
private:
- void setDpmsTimeouts(bool restore);
-
PowerManagementSettings mPSettings;
int mIdleACWatcher;
int mIdleBatteryWatcher;
@@ -54,7 +52,6 @@ private:
LXQt::Backlight *mBacklight;
int mBacklightActualValue;
bool mDischarging;
- quint16 mDpmsStandby, mDpmsSuspend, mDpmsOff;
};
#endif // IDLENESSWATCHER_H
diff --git a/src/main.cpp b/src/main.cpp
index eedd360..493bf8b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -34,7 +34,7 @@
int main(int argc, char *argv[])
{
- LXQt::Application a(argc, argv, true);
+ LXQt::Application a(argc, argv);
a.setQuitOnLastWindowClosed(false);
QCommandLineParser parser;

@ -1 +1,2 @@
battery-ux.patch
revert-dpms-changes.patch

Loading…
Cancel
Save