[mate-screensaver] only allow one instance per user, fix dual login prompt
nmarques
nmarques at fedoraproject.org
Thu Dec 6 20:23:49 UTC 2012
commit 5a50333692bbe894b5cbeb8954a5a1d3a710028f
Author: Nelson Marques <nmo.marques at gmail.com>
Date: Thu Dec 6 20:20:38 2012 +0000
only allow one instance per user, fix dual login prompt
...screensaver-1.5.1-only_allow_one_instance.patch | 59 ++++++++++++++++++++
mate-screensaver.spec | 10 +++
2 files changed, 69 insertions(+), 0 deletions(-)
---
diff --git a/mate-screensaver-1.5.1-only_allow_one_instance.patch b/mate-screensaver-1.5.1-only_allow_one_instance.patch
new file mode 100644
index 0000000..e10db15
--- /dev/null
+++ b/mate-screensaver-1.5.1-only_allow_one_instance.patch
@@ -0,0 +1,59 @@
+From ca4b57cdd02c223763c9d60742630127340bbeee Mon Sep 17 00:00:00 2001
+From: Nelson Marques <nmo.marques at gmail.com>
+Date: Wed, 5 Dec 2012 16:12:28 +0000
+Subject: [PATCH] prevent mate-screensaver to launch a 2nd instance
+
+---
+ src/gs-listener-dbus.c | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/src/gs-listener-dbus.c b/src/gs-listener-dbus.c
+index ed1199f..99e05df 100644
+--- a/src/gs-listener-dbus.c
++++ b/src/gs-listener-dbus.c
+@@ -2204,7 +2204,7 @@ gboolean
+ gs_listener_acquire (GSListener *listener,
+ GError **error)
+ {
+- gboolean acquired;
++ int acquired;
+ DBusError buserror;
+ gboolean is_connected;
+
+@@ -2254,7 +2254,8 @@ gs_listener_acquire (GSListener *listener,
+
+ acquired = dbus_bus_request_name (listener->priv->connection,
+ GS_LISTENER_SERVICE,
+- 0, &buserror) != -1;
++ DBUS_NAME_FLAG_DO_NOT_QUEUE,
++ &buserror);
+ if (dbus_error_is_set (&buserror))
+ {
+ g_set_error (error,
+@@ -2263,6 +2264,14 @@ gs_listener_acquire (GSListener *listener,
+ "%s",
+ buserror.message);
+ }
++ if (acquired == DBUS_REQUEST_NAME_REPLY_EXISTS) {
++ g_set_error (error,
++ GS_LISTENER_ERROR,
++ GS_LISTENER_ERROR_ACQUISITION_FAILURE,
++ "%s",
++ _("screensaver already running in this session"));
++ return FALSE;
++ }
+
+ dbus_error_free (&buserror);
+
+@@ -2331,7 +2340,7 @@ gs_listener_acquire (GSListener *listener,
+ }
+
+ finish:
+- return acquired;
++ return (acquired != -1);
+ }
+
+ static char *
+--
+1.8.0
+
diff --git a/mate-screensaver.spec b/mate-screensaver.spec
index 35cc913..fdea2f1 100644
--- a/mate-screensaver.spec
+++ b/mate-screensaver.spec
@@ -7,6 +7,10 @@ License: GPLv2+ and LGPLv2+
URL: http://pub.mate-desktop.org
Source0: http://pub.mate-desktop.org/releases/1.5/%{name}-%{version}.tar.xz
+# PATCH-FIX-UPSTREAM mate-screensaver-1.5.1-only_allow_one_instance.patch - nmo.marques at gmail.com
+# only allow one instance per user; fixes dual password prompt after hibernate/suspend, upstreamed
+Patch0: %{name}-1.5.1-only_allow_one_instance.patch
+
BuildRequires: gtk2-devel
BuildRequires: libmateui-devel
BuildRequires: dbus-glib-devel
@@ -52,6 +56,7 @@ Development files for mate-screensaver
%prep
%setup -q
+%patch -p1
NOCONFIGURE=1 ./autogen.sh
@@ -117,6 +122,11 @@ fi
%changelog
+* Thu Dec 05 2012 Nelson Marques <nmo.marques at gmail.com> - 1.5.1-2
+* add mate-screensaver-1.5.1-only_allow_one_instance.patch: fix double
+ password prompt when returning from hibernate/suspend. Only allow one
+ instance per user.
+
* Fri Nov 23 2012 Leigh Scott <leigh123linux at googlemail.com> - 1.5.1-1
- update to 1.5.1 release
- drop upstream commits patch
More information about the scm-commits
mailing list