|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
From dcddddd3f1a1c1560a84caf791a21b4610f0fc7d Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
From: Aleksei Bavshin <alebastr89@gmail.com>
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
Date: Thu, 14 Mar 2024 00:58:33 -0700
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
Subject: [PATCH] fix(power-profiles-daemon): correctly set initial visibility
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
The bus error when the daemon is not reachable prevents the initial
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
update and keeps the module visible, as an empty section on the bar.
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
Do the update explicitly before connecting to set initial visibility.
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
While we at it, remove a couple of redundant `update()` calls.
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
---
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
src/modules/power_profiles_daemon.cpp | 9 ++++-----
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
1 file changed, 4 insertions(+), 5 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
diff --git a/src/modules/power_profiles_daemon.cpp b/src/modules/power_profiles_daemon.cpp
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
index ae3d7443b..ac5f7a2a6 100644
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
--- a/src/modules/power_profiles_daemon.cpp
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
+++ b/src/modules/power_profiles_daemon.cpp
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
@@ -42,6 +42,8 @@ PowerProfilesDaemon::PowerProfilesDaemon(const std::string& id, const Json::Valu
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
Gio::DBus::Proxy::create_for_bus(Gio::DBus::BusType::BUS_TYPE_SYSTEM, "net.hadess.PowerProfiles",
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
"/net/hadess/PowerProfiles", "net.hadess.PowerProfiles",
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
sigc::mem_fun(*this, &PowerProfilesDaemon::busConnectedCb));
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
+ // Schedule update to set the initial visibility
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
+ dp.emit();
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
}
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
void PowerProfilesDaemon::busConnectedCb(Glib::RefPtr<Gio::AsyncResult>& r) {
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
@@ -74,7 +76,6 @@ void PowerProfilesDaemon::getAllPropsCb(Glib::RefPtr<Gio::AsyncResult>& r) {
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
powerProfilesProxy_->signal_properties_changed().connect(
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
sigc::mem_fun(*this, &PowerProfilesDaemon::profileChangedCb));
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
populateInitState();
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
- dp.emit();
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
} catch (const std::exception& err) {
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
spdlog::error("Failed to query power-profiles-daemon via dbus: {}", err.what());
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
} catch (const Glib::Error& err) {
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
@@ -112,8 +113,6 @@ void PowerProfilesDaemon::populateInitState() {
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
// Find the index of the current activated mode (to toggle)
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
std::string str = profileStr.get();
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
switchToProfile(str);
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
-
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
- update();
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
}
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
void PowerProfilesDaemon::profileChangedCb(
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
@@ -128,7 +127,6 @@ void PowerProfilesDaemon::profileChangedCb(
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
Glib::VariantBase::cast_dynamic<Glib::Variant<std::string>>(activeProfileVariant->second)
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
.get();
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
switchToProfile(activeProfile);
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
- update();
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
}
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
}
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
}
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
@@ -145,6 +143,7 @@ void PowerProfilesDaemon::switchToProfile(std::string const& str) {
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
"Power profile daemon: can't find the active profile {} in the available profiles list",
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
str);
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
}
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
+ dp.emit();
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
}
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
auto PowerProfilesDaemon::update() -> void {
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
@@ -195,7 +194,7 @@ bool PowerProfilesDaemon::handleToggle(GdkEventButton* const& e) {
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
void PowerProfilesDaemon::setPropCb(Glib::RefPtr<Gio::AsyncResult>& r) {
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
try {
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
auto _ = powerProfilesProxy_->call_finish(r);
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
- update();
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
+ dp.emit();
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
} catch (const std::exception& e) {
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
spdlog::error("Failed to set the the active power profile: {}", e.what());
|
|
![](https://seccdn.libravatar.org/avatar/980e81ea350dc00a131719aacf8f154bd8b6fb36582d04f91af73e56b0c7f893?s=16&d=retro) |
9423a10 |
} catch (const Glib::Error& e) {
|