[cinnamon-settings-daemon] cherry pick upstream (includes bz 1182457)
leigh123linux
leigh123linux at fedoraproject.org
Sun Feb 22 12:04:44 UTC 2015
commit 60891e3f876ff1fef3492276ffec1cbe47f6b277
Author: leigh123linux <leigh123linux at googlemail.com>
Date: Sun Feb 22 12:04:35 2015 +0000
cherry pick upstream (includes bz 1182457)
0001-backport-follow-lid-behavior.patch | 388 +++++++++++++++++++++
...l-display-activation-when-notebook-is-wok.patch | 32 ++
...n-free-a-new-GSettings-from-previous-comm.patch | 28 ++
...n-Always-send-a-response-to-a-dbus-method.patch | 42 +++
cinnamon-settings-daemon.spec | 11 +-
5 files changed, 500 insertions(+), 1 deletion(-)
---
diff --git a/0001-backport-follow-lid-behavior.patch b/0001-backport-follow-lid-behavior.patch
new file mode 100644
index 0000000..9f396bb
--- /dev/null
+++ b/0001-backport-follow-lid-behavior.patch
@@ -0,0 +1,388 @@
+From ea85ec938d8602bc0ea58bc36f0136c078a90ccf Mon Sep 17 00:00:00 2001
+From: Peter Hatina <phatina at redhat.com>
+Date: Sat, 31 Jan 2015 16:20:04 +0100
+Subject: [PATCH 1/2] backport 'follow lid' behavior
+
+---
+ data/csd-enums.h | 3 +-
+ ...ettings-daemon.plugins.xrandr.gschema.xml.in.in | 4 +-
+ plugins/power/csd-power-manager.c | 134 +++++++++++++++++++++
+ plugins/xrandr/csd-xrandr-manager.c | 43 ++++---
+ 4 files changed, 166 insertions(+), 18 deletions(-)
+
+diff --git a/data/csd-enums.h b/data/csd-enums.h
+index 29c09c3..095f614 100644
+--- a/data/csd-enums.h
++++ b/data/csd-enums.h
+@@ -79,7 +79,8 @@ typedef enum
+ {
+ CSD_XRANDR_BOOT_BEHAVIOUR_DO_NOTHING,
+ CSD_XRANDR_BOOT_BEHAVIOUR_CLONE,
+- CSD_XRANDR_BOOT_BEHAVIOUR_DOCK
++ CSD_XRANDR_BOOT_BEHAVIOUR_DOCK,
++ CSD_XRANDR_BOOT_BEHAVIOUR_FOLLOW_LID
+ } CsdXrandrBootBehaviour;
+
+ typedef enum
+diff --git a/data/org.cinnamon.settings-daemon.plugins.xrandr.gschema.xml.in.in b/data/org.cinnamon.settings-daemon.plugins.xrandr.gschema.xml.in.in
+index 923d28e..d353afd 100644
+--- a/data/org.cinnamon.settings-daemon.plugins.xrandr.gschema.xml.in.in
++++ b/data/org.cinnamon.settings-daemon.plugins.xrandr.gschema.xml.in.in
+@@ -16,9 +16,9 @@
+ <_description>Priority to use for this plugin in cinnamon-settings-daemon startup queue</_description>
+ </key>
+ <key name="default-monitors-setup" enum="org.cinnamon.settings-daemon.CsdXrandrBootBehaviour">
+- <default>'do-nothing'</default>
++ <default>'follow-lid'</default>
+ <_summary>Whether to turn off specific monitors after boot</_summary>
+- <_description>'clone' will display the same thing on all monitors, 'dock' will switch off the internal monitor, 'do-nothing' will use the default Xorg behaviour (extend the desktop in recent versions)</_description>
++ <_description>clone' will display the same thing on all monitors, 'dock' will switch off the internal monitor, 'do-nothing' will use the default Xorg behaviour (extend the desktop in recent versions). The default, 'follow-lid', will choose between 'do-nothing' and 'dock' depending on whether the lid is (respectively) open or closed.</_description>
+ </key>
+ </schema>
+ </schemalist>
+diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c
+index 3d662d7..e1e78ec 100644
+--- a/plugins/power/csd-power-manager.c
++++ b/plugins/power/csd-power-manager.c
+@@ -61,6 +61,7 @@
+ #define UPOWER_DBUS_INTERFACE_KBDBACKLIGHT "org.freedesktop.UPower.KbdBacklight"
+
+ #define CSD_POWER_SETTINGS_SCHEMA "org.cinnamon.settings-daemon.plugins.power"
++#define CSD_XRANDR_SETTINGS_SCHEMA "org.cinnamon.settings-daemon.plugins.xrandr"
+
+ #define CSD_DBUS_SERVICE "org.cinnamon.SettingsDaemon"
+ #define CSD_DBUS_PATH "/org/cinnamon/SettingsDaemon"
+@@ -170,6 +171,7 @@ struct CsdPowerManagerPrivate
+ gboolean lid_is_closed;
+ GSettings *settings;
+ GSettings *settings_screensaver;
++ GSettings *settings_xrandr;
+ UpClient *up_client;
+ GDBusNodeInfo *introspection_data;
+ GDBusConnection *connection;
+@@ -217,6 +219,7 @@ struct CsdPowerManagerPrivate
+ gboolean inhibit_lid_switch_taken;
+ gint inhibit_suspend_fd;
+ gboolean inhibit_suspend_taken;
++ guint inhibit_lid_switch_timer_id;
+ };
+
+ enum {
+@@ -231,8 +234,12 @@ static UpDevice *engine_get_composite_device (CsdPowerManager *manager, UpDevice
+ static UpDevice *engine_update_composite_device (CsdPowerManager *manager, UpDevice *original_device);
+ static GIcon *engine_get_icon (CsdPowerManager *manager);
+ static gchar *engine_get_summary (CsdPowerManager *manager);
++
++static gboolean external_monitor_is_connected (GnomeRRScreen *screen);
+ static void do_power_action_type (CsdPowerManager *manager, CsdPowerActionType action_type);
+ static void do_lid_closed_action (CsdPowerManager *manager);
++static void inhibit_lid_switch (CsdPowerManager *manager);
++static void uninhibit_lid_switch (CsdPowerManager *manager);
+ static void lock_screensaver (CsdPowerManager *manager);
+ static void kill_lid_close_safety_timer (CsdPowerManager *manager);
+
+@@ -2063,6 +2070,114 @@ upower_kbd_toggle (CsdPowerManager *manager,
+ return ret;
+ }
+
++static gboolean
++suspend_on_lid_close (CsdPowerManager *manager)
++{
++ CsdXrandrBootBehaviour val;
++
++ if (!external_monitor_is_connected (manager->priv->x11_screen))
++ return TRUE;
++
++ val = g_settings_get_enum (manager->priv->settings_xrandr, "default-monitors-setup");
++ return val == CSD_XRANDR_BOOT_BEHAVIOUR_DO_NOTHING;
++}
++
++static gboolean
++inhibit_lid_switch_timer_cb (CsdPowerManager *manager)
++{
++ if (suspend_on_lid_close (manager)) {
++ g_debug ("no external monitors for a while; uninhibiting lid close");
++ uninhibit_lid_switch (manager);
++ manager->priv->inhibit_lid_switch_timer_id = 0;
++ return G_SOURCE_REMOVE;
++ }
++
++ g_debug ("external monitor still there; trying again later");
++ return G_SOURCE_CONTINUE;
++}
++
++/* Sets up a timer to be triggered some seconds after closing the laptop lid
++ * when the laptop is *not* suspended for some reason. We'll check conditions
++ * again in the timeout handler to see if we can suspend then.
++ */
++static void
++setup_inhibit_lid_switch_timer (CsdPowerManager *manager)
++{
++ if (manager->priv->inhibit_lid_switch_timer_id != 0) {
++ g_debug ("lid close safety timer already set up");
++ return;
++ }
++
++ g_debug ("setting up lid close safety timer");
++
++ manager->priv->inhibit_lid_switch_timer_id = g_timeout_add_seconds (CSD_POWER_MANAGER_LID_CLOSE_SAFETY_TIMEOUT,
++ (GSourceFunc) inhibit_lid_switch_timer_cb,
++ manager);
++ g_source_set_name_by_id (manager->priv->inhibit_lid_switch_timer_id, "[CsdPowerManager] lid close safety timer");
++}
++
++static void
++restart_inhibit_lid_switch_timer (CsdPowerManager *manager)
++{
++ if (manager->priv->inhibit_lid_switch_timer_id != 0) {
++ g_debug ("restarting lid close safety timer");
++ g_source_remove (manager->priv->inhibit_lid_switch_timer_id);
++ manager->priv->inhibit_lid_switch_timer_id = 0;
++ setup_inhibit_lid_switch_timer (manager);
++ }
++}
++
++
++static gboolean
++randr_output_is_on (GnomeRROutput *output)
++{
++ GnomeRRCrtc *crtc;
++
++ crtc = gnome_rr_output_get_crtc (output);
++ if (!crtc)
++ return FALSE;
++ return gnome_rr_crtc_get_current_mode (crtc) != NULL;
++}
++
++static gboolean
++external_monitor_is_connected (GnomeRRScreen *screen)
++{
++ GnomeRROutput **outputs;
++ guint i;
++
++ /* see if we have more than one screen plugged in */
++ outputs = gnome_rr_screen_list_outputs (screen);
++ for (i = 0; outputs[i] != NULL; i++) {
++ if (randr_output_is_on (outputs[i]) &&
++ !gnome_rr_output_is_laptop (outputs[i]))
++ return TRUE;
++ }
++
++ return FALSE;
++}
++
++static void
++on_randr_event (GnomeRRScreen *screen, gpointer user_data)
++{
++ CsdPowerManager *manager = CSD_POWER_MANAGER (user_data);
++
++ if (suspend_on_lid_close (manager)) {
++ restart_inhibit_lid_switch_timer (manager);
++ return;
++ }
++
++ /* when a second monitor is plugged in, we take the
++ * handle-lid-switch inhibitor lock of logind to prevent
++ * it from suspending.
++ *
++ * Uninhibiting is done in the inhibit_lid_switch_timer,
++ * since we want to give users a few seconds when unplugging
++ * and replugging an external monitor, not suspend right away.
++ */
++ inhibit_lid_switch (manager);
++ setup_inhibit_lid_switch_timer (manager);
++}
++
+ static void
+ do_lid_open_action (CsdPowerManager *manager)
+ {
+@@ -3731,6 +3846,20 @@ inhibit_lid_switch (CsdPowerManager *manager)
+ }
+
+ static void
++uninhibit_lid_switch (CsdPowerManager *manager)
++{
++ if (manager->priv->inhibit_lid_switch_fd == -1) {
++ g_debug ("no lid-switch inhibitor");
++ return;
++ }
++ g_debug ("Removing lid switch system inhibitor");
++ close (manager->priv->inhibit_lid_switch_fd);
++ manager->priv->inhibit_lid_switch_fd = -1;
++ manager->priv->inhibit_lid_switch_taken = FALSE;
++}
++
++
++static void
+ inhibit_suspend_done (GObject *source,
+ GAsyncResult *result,
+ gpointer user_data)
+@@ -3994,6 +4123,7 @@ csd_power_manager_start (CsdPowerManager *manager,
+ g_signal_connect (manager->priv->settings, "changed",
+ G_CALLBACK (engine_settings_key_changed_cb), manager);
+ manager->priv->settings_screensaver = g_settings_new ("org.cinnamon.desktop.screensaver");
++ manager->priv->settings_xrandr = g_settings_new (CSD_XRANDR_SETTINGS_SCHEMA);
+ manager->priv->up_client = up_client_new ();
+ #if ! UP_CHECK_VERSION(0,99,0)
+ g_signal_connect (manager->priv->up_client, "notify-sleep",
+@@ -4120,6 +4250,10 @@ csd_power_manager_start (CsdPowerManager *manager,
+ g_signal_connect (manager->priv->idletime, "alarm-expired",
+ G_CALLBACK (idle_idletime_alarm_expired_cb), manager);
+
++ /* set up the screens */
++ g_signal_connect (manager->priv->x11_screen, "changed", G_CALLBACK (on_randr_event), manager);
++ on_randr_event (manager->priv->x11_screen, manager);
++
+ /* ensure the default dpms timeouts are cleared */
+ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
+ GNOME_RR_DPMS_ON,
+diff --git a/plugins/xrandr/csd-xrandr-manager.c b/plugins/xrandr/csd-xrandr-manager.c
+index 35bbf71..c144624 100644
+--- a/plugins/xrandr/csd-xrandr-manager.c
++++ b/plugins/xrandr/csd-xrandr-manager.c
+@@ -650,11 +650,7 @@ user_says_things_are_ok (CsdXrandrManager *manager, GdkWindow *parent_window)
+ gtk_main ();
+
+ gtk_widget_destroy (timeout.dialog);
+-
+- if (timeout_id) {
+- g_source_remove (timeout_id);
+- timeout_id = 0;
+- }
++ g_source_remove (timeout_id);
+
+ if (timeout.response_id == GTK_RESPONSE_ACCEPT)
+ return TRUE;
+@@ -881,8 +877,6 @@ make_clone_setup (CsdXrandrManager *manager, GnomeRRScreen *screen)
+ return NULL;
+
+ result = gnome_rr_config_new_current (screen, NULL);
+- gnome_rr_config_set_clone (result, TRUE);
+-
+ outputs = gnome_rr_config_get_outputs (result);
+
+ for (i = 0; outputs[i] != NULL; ++i) {
+@@ -924,6 +918,8 @@ make_clone_setup (CsdXrandrManager *manager, GnomeRRScreen *screen)
+ result = NULL;
+ }
+
++ gnome_rr_config_set_clone (result, TRUE);
++
+ print_configuration (result, "clone setup");
+
+ return result;
+@@ -1005,8 +1001,6 @@ make_laptop_setup (CsdXrandrManager *manager, GnomeRRScreen *screen)
+ GnomeRROutputInfo **outputs = gnome_rr_config_get_outputs (result);
+ int i;
+
+- gnome_rr_config_set_clone (result, FALSE);
+-
+ for (i = 0; outputs[i] != NULL; ++i) {
+ GnomeRROutputInfo *info = outputs[i];
+
+@@ -1022,11 +1016,13 @@ make_laptop_setup (CsdXrandrManager *manager, GnomeRRScreen *screen)
+ }
+ }
+
+- if (result != NULL && config_is_all_off (result)) {
++ if (config_is_all_off (result)) {
+ g_object_unref (G_OBJECT (result));
+ result = NULL;
+ }
+
++ gnome_rr_config_set_clone (result, FALSE);
++
+ print_configuration (result, "Laptop setup");
+
+ /* FIXME - Maybe we should return NULL if there is more than
+@@ -1128,6 +1124,14 @@ trim_rightmost_outputs_that_dont_fit_in_framebuffer (GnomeRRScreen *rr_screen, G
+ return applicable;
+ }
+
++static gboolean
++follow_laptop_lid(CsdXrandrManager *manager)
++{
++ CsdXrandrBootBehaviour val;
++ val = g_settings_get_enum (manager->priv->settings, CONF_KEY_DEFAULT_MONITORS_SETUP);
++ return val == CSD_XRANDR_BOOT_BEHAVIOUR_FOLLOW_LID || val == CSD_XRANDR_BOOT_BEHAVIOUR_CLONE;
++}
++
+ static GnomeRRConfig *
+ make_xinerama_setup (CsdXrandrManager *manager, GnomeRRScreen *screen)
+ {
+@@ -1139,14 +1143,12 @@ make_xinerama_setup (CsdXrandrManager *manager, GnomeRRScreen *screen)
+ int i;
+ int x;
+
+- gnome_rr_config_set_clone (result, FALSE);
+-
+ x = 0;
+ for (i = 0; outputs[i] != NULL; ++i) {
+ GnomeRROutputInfo *info = outputs[i];
+
+ if (is_laptop (screen, info)) {
+- if (laptop_lid_is_closed (manager))
++ if (laptop_lid_is_closed (manager) && follow_laptop_lid (manager))
+ gnome_rr_output_info_set_active (info, FALSE);
+ else {
+ gnome_rr_output_info_set_primary (info, TRUE);
+@@ -1169,6 +1171,8 @@ make_xinerama_setup (CsdXrandrManager *manager, GnomeRRScreen *screen)
+ result = NULL;
+ }
+
++ gnome_rr_config_set_clone (result, FALSE);
++
+ print_configuration (result, "xinerama setup");
+
+ return result;
+@@ -1185,8 +1189,6 @@ make_other_setup (GnomeRRScreen *screen)
+ GnomeRROutputInfo **outputs = gnome_rr_config_get_outputs (result);
+ int i;
+
+- gnome_rr_config_set_clone (result, FALSE);
+-
+ for (i = 0; outputs[i] != NULL; ++i) {
+ GnomeRROutputInfo *info = outputs[i];
+
+@@ -1204,6 +1206,8 @@ make_other_setup (GnomeRRScreen *screen)
+ result = NULL;
+ }
+
++ gnome_rr_config_set_clone (result, FALSE);
++
+ print_configuration (result, "other setup");
+
+ return result;
+@@ -1538,6 +1542,7 @@ is_wacom_tablet_device (CsdXrandrManager *mgr,
+ wacom_device = libwacom_new_from_path (priv->wacom_db, device_node, FALSE, NULL);
+ g_free (device_node);
+ if (wacom_device == NULL) {
++ g_free (device_node);
+ return FALSE;
+ }
+ is_tablet = libwacom_has_touch (wacom_device) &&
+@@ -1862,6 +1867,12 @@ apply_default_boot_configuration (CsdXrandrManager *mgr, guint32 timestamp)
+ switch (boot) {
+ case CSD_XRANDR_BOOT_BEHAVIOUR_DO_NOTHING:
+ return;
++ case CSD_XRANDR_BOOT_BEHAVIOUR_FOLLOW_LID:
++ if (laptop_lid_is_closed (mgr))
++ config = make_other_setup (screen);
++ else
++ config = make_xinerama_setup (mgr, screen);
++ break;
+ case CSD_XRANDR_BOOT_BEHAVIOUR_CLONE:
+ config = make_clone_setup (mgr, screen);
+ break;
+@@ -1992,6 +2003,8 @@ power_client_changed_cb (UpClient *client, gpointer data)
+
+ if (is_closed != priv->laptop_lid_is_closed) {
+ priv->laptop_lid_is_closed = is_closed;
++ if (!follow_laptop_lid (manager))
++ return;
+
+ /* Refresh the RANDR state. The lid just got opened/closed, so we can afford to
+ * probe the outputs right now. It will also help the case where we can't detect
+--
+1.9.3
+
diff --git a/0002-fix-external-display-activation-when-notebook-is-wok.patch b/0002-fix-external-display-activation-when-notebook-is-wok.patch
new file mode 100644
index 0000000..056e7d7
--- /dev/null
+++ b/0002-fix-external-display-activation-when-notebook-is-wok.patch
@@ -0,0 +1,32 @@
+From 724520b80d73fa0903435c71f68150c93ae58435 Mon Sep 17 00:00:00 2001
+From: Peter Hatina <phatina at redhat.com>
+Date: Sat, 31 Jan 2015 16:21:25 +0100
+Subject: [PATCH 2/2] fix external display activation when notebook is woken up
+ with closed lid
+
+---
+ plugins/xrandr/csd-xrandr-manager.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/xrandr/csd-xrandr-manager.c b/plugins/xrandr/csd-xrandr-manager.c
+index c144624..1661f0a 100644
+--- a/plugins/xrandr/csd-xrandr-manager.c
++++ b/plugins/xrandr/csd-xrandr-manager.c
+@@ -2016,8 +2016,12 @@ power_client_changed_cb (UpClient *client, gpointer data)
+
+ if (is_closed)
+ turn_off_laptop_display (manager, GDK_CURRENT_TIME); /* sucks not to have a timestamp for the notification */
+- else
+- use_stored_configuration_or_auto_configure_outputs (manager, GDK_CURRENT_TIME);
++
++ /* Use stored configuration or auto-configure outputs all the
++ * time. Don't switch between 2 possibilities; notebook can be
++ * woken up with lid closed and then no output is activated.
++ */
++ use_stored_configuration_or_auto_configure_outputs (manager, GDK_CURRENT_TIME);
+ }
+ }
+
+--
+1.9.3
+
diff --git a/0003-power-plugin-free-a-new-GSettings-from-previous-comm.patch b/0003-power-plugin-free-a-new-GSettings-from-previous-comm.patch
new file mode 100644
index 0000000..f8efa2c
--- /dev/null
+++ b/0003-power-plugin-free-a-new-GSettings-from-previous-comm.patch
@@ -0,0 +1,28 @@
+From 65e6a116638e268a1abd6856e2eb7b2f78350797 Mon Sep 17 00:00:00 2001
+From: Michael Webster <miketwebster at gmail.com>
+Date: Sun, 8 Feb 2015 10:02:09 -0500
+Subject: [PATCH] power plugin: free a new GSettings from previous commits
+
+---
+ plugins/power/csd-power-manager.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c
+index 350dc5c..1564be3 100644
+--- a/plugins/power/csd-power-manager.c
++++ b/plugins/power/csd-power-manager.c
+@@ -4324,6 +4324,11 @@ csd_power_manager_stop (CsdPowerManager *manager)
+ manager->priv->settings_screensaver = NULL;
+ }
+
++ if (manager->priv->settings_xrandr != NULL) {
++ g_object_unref (manager->priv->settings_xrandr);
++ manager->priv->settings_xrandr = NULL;
++ }
++
+ if (manager->priv->up_client != NULL) {
+ g_object_unref (manager->priv->up_client);
+ manager->priv->up_client = NULL;
+--
+1.9.3
+
diff --git a/0004-sound-plugin-Always-send-a-response-to-a-dbus-method.patch b/0004-sound-plugin-Always-send-a-response-to-a-dbus-method.patch
new file mode 100644
index 0000000..de1da1a
--- /dev/null
+++ b/0004-sound-plugin-Always-send-a-response-to-a-dbus-method.patch
@@ -0,0 +1,42 @@
+From 3e89a435346c7d7aed03264f60529c1f8264bec4 Mon Sep 17 00:00:00 2001
+From: Michael Webster <miketwebster at gmail.com>
+Date: Thu, 5 Feb 2015 22:08:42 -0500
+Subject: [PATCH 09/10] sound plugin: Always send a response to a dbus method
+ call - this prevents a harmless warning when Cinnamon is restarted and the
+ login sound attempts to play a second time.
+
+---
+ plugins/sound/csd-sound-manager.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/sound/csd-sound-manager.c b/plugins/sound/csd-sound-manager.c
+index 999bfdf..eee2ac7 100644
+--- a/plugins/sound/csd-sound-manager.c
++++ b/plugins/sound/csd-sound-manager.c
+@@ -141,8 +141,10 @@ handle_sound_request (GDBusConnection *connection,
+ CA_PROP_EVENT_ID,
+ sound_name,
+ NULL);
+- g_dbus_method_invocation_return_value (invocation, NULL);
+ }
++
++ g_dbus_method_invocation_return_value (invocation, NULL);
++
+ } else if (g_strcmp0 (method_name, "PlaySoundFile") == 0) {
+ const char *sound_file;
+ guint id;
+@@ -155,8 +157,10 @@ handle_sound_request (GDBusConnection *connection,
+ CA_PROP_MEDIA_FILENAME,
+ sound_file,
+ NULL);
+- g_dbus_method_invocation_return_value (invocation, NULL);
+ }
++
++ g_dbus_method_invocation_return_value (invocation, NULL);
++
+ } else if (g_strcmp0 (method_name, "CancelSound") == 0) {
+ guint id;
+
+--
+1.9.3
+
diff --git a/cinnamon-settings-daemon.spec b/cinnamon-settings-daemon.spec
index 01a1be7..8b72243 100644
--- a/cinnamon-settings-daemon.spec
+++ b/cinnamon-settings-daemon.spec
@@ -2,7 +2,7 @@
Name: cinnamon-settings-daemon
Version: 2.4.3
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: The daemon sharing settings from CINNAMON to GTK+/KDE applications
Group: System Environment/Daemons
@@ -13,6 +13,12 @@ URL: http://cinnamon.linuxmint.com
#Source0: http://leigh123linux.fedorapeople.org/pub/cinnamon-settings-daemon/source/cinnamon-settings-daemon-%%{version}.git%%{_internal_version}.tar.gz
Source0: http://leigh123linux.fedorapeople.org/pub/cinnamon-settings-daemon/source/cinnamon-settings-daemon-%{version}.tar.gz
+# Upstream patches
+Patch0: 0001-backport-follow-lid-behavior.patch
+Patch1: 0002-fix-external-display-activation-when-notebook-is-wok.patch
+Patch2: 0003-power-plugin-free-a-new-GSettings-from-previous-comm.patch
+Patch3: 0004-sound-plugin-Always-send-a-response-to-a-dbus-method.patch
+
Requires: cinnamon-control-center-filesystem
Obsoletes: cinnamon-settings-daemon-updates
@@ -131,6 +137,9 @@ fi
%changelog
+* Sun Feb 22 2015 Leigh Scott <leigh123linux at googlemail.com> - 2.4.3-2
+- cherry pick upstream (includes bz 1182457)
+
* Wed Nov 12 2014 Leigh Scott <leigh123linux at googlemail.com> - 2.4.3-1
- update to 2.4.3
More information about the scm-commits
mailing list