Fix gdm session trying to change the backlight, resulting in a lot

of spurious error messages (#1322588)
This commit is contained in:
Bastien Nocera 2018-01-12 16:12:14 +01:00
parent 89a94a82fa
commit b9fac73e6d
2 changed files with 74 additions and 2 deletions

View File

@ -0,0 +1,64 @@
From bc732cd6c7c7e22b0f8df7c6a4046b5303eff5eb Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Wed, 10 Jan 2018 17:57:47 +0100
Subject: [PATCH] power: Don't react to light changes if not at console
As iio-sensor-proxy isn't yet clever enough to only send property
changes signals to clients that have claimed a sensor, disconnect
the properties-changed signal so we don't attempt to make brightness
changes when we're not on the active seat.
See https://github.com/hadess/iio-sensor-proxy/issues/210
See https://bugzilla.gnome.org/show_bug.cgi?id=756539
See https://bugzilla.gnome.org/show_bug.cgi?id=773685
See https://bugzilla.gnome.org/show_bug.cgi?id=764896
See https://bugzilla.redhat.com/show_bug.cgi?id=1322588
https://bugzilla.gnome.org/show_bug.cgi?id=792409
---
plugins/power/gsd-power-manager.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
index e411e124..19fa3214 100644
--- a/plugins/power/gsd-power-manager.c
+++ b/plugins/power/gsd-power-manager.c
@@ -219,6 +219,7 @@ static gboolean idle_is_session_inhibited (GsdPowerManager *manager, guint mask
static void idle_triggered_idle_cb (GnomeIdleMonitor *monitor, guint watch_id, gpointer user_data);
static void idle_became_active_cb (GnomeIdleMonitor *monitor, guint watch_id, gpointer user_data);
static void iio_proxy_changed (GsdPowerManager *manager);
+static void iio_proxy_changed_cb (GDBusProxy *proxy, GVariant *changed_properties, GStrv invalidated_properties, gpointer user_data);
G_DEFINE_TYPE (GsdPowerManager, gsd_power_manager, G_TYPE_OBJECT)
@@ -996,6 +997,18 @@ iio_proxy_claim_light (GsdPowerManager *manager, gboolean active)
if (active && !manager->priv->session_is_active)
return;
+ /* FIXME:
+ * Remove when iio-sensor-proxy sends events only to clients instead
+ * of all listeners:
+ * https://github.com/hadess/iio-sensor-proxy/issues/210 */
+ if (active)
+ g_signal_connect (manager->priv->iio_proxy, "g-properties-changed",
+ G_CALLBACK (iio_proxy_changed_cb), manager);
+ else
+ g_signal_handlers_disconnect_by_func (manager->priv->iio_proxy,
+ G_CALLBACK (iio_proxy_changed_cb),
+ manager);
+
if (!g_dbus_proxy_call_sync (manager->priv->iio_proxy,
active ? "ClaimLight" : "ReleaseLight",
NULL,
@@ -2613,8 +2626,6 @@ iio_proxy_appeared_cb (GDBusConnection *connection,
"net.hadess.SensorProxy",
NULL,
NULL);
- g_signal_connect (manager->priv->iio_proxy, "g-properties-changed",
- G_CALLBACK (iio_proxy_changed_cb), manager);
iio_proxy_claim_light (manager, TRUE);
}
--
2.14.3

View File

@ -8,13 +8,17 @@
Name: gnome-settings-daemon
Version: 3.26.2
Release: 2%{?dist}
Release: 3%{?dist}
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
License: GPLv2+
URL: https://download.gnome.org/sources/%{name}
Source0: https://download.gnome.org/sources/%{name}/3.26/%{name}-%{version}.tar.xz
# https://bugzilla.redhat.com/show_bug.cgi?id=1322588
# https://bugzilla.gnome.org/show_bug.cgi?id=792409
Patch0: 0001-power-Don-t-react-to-light-changes-if-not-at-console.patch
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(colord) >= 1.0.2
BuildRequires: pkgconfig(fontconfig)
@ -86,7 +90,7 @@ The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%setup -q
%autosetup -p1
%build
%configure --disable-static \
@ -200,6 +204,10 @@ mkdir $RPM_BUILD_ROOT%{_libdir}/gnome-settings-daemon-3.0/gtk-modules
%{_libexecdir}/gsd-test-input-helper
%changelog
* Fri Jan 12 2018 Bastien Nocera <bnocera@redhat.com> - 3.26.2-3
- Fix gdm session trying to change the backlight, resulting in a lot
of spurious error messages (#1322588)
* Fri Jan 05 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3.26.2-2
- Remove obsolete scriptlets