[at-spi2-atk/f16] fix hangs on the login screen

Matthias Clasen mclasen at fedoraproject.org
Fri Sep 23 21:45:51 UTC 2011


commit 27ef2062be90507b52d4e5aaa680328b36a1fe22
Author: Matthias Clasen <mclasen at redhat.com>
Date:   Fri Sep 23 17:45:03 2011 -0400

    fix hangs on the login screen

 ...me-shell-getting-stuck-on-the-login-scree.patch |   46 ++++++++++++++++++++
 at-spi2-atk.spec                                   |    9 +++-
 2 files changed, 54 insertions(+), 1 deletions(-)
---
diff --git a/0001-Prevent-gnome-shell-getting-stuck-on-the-login-scree.patch b/0001-Prevent-gnome-shell-getting-stuck-on-the-login-scree.patch
new file mode 100644
index 0000000..285b404
--- /dev/null
+++ b/0001-Prevent-gnome-shell-getting-stuck-on-the-login-scree.patch
@@ -0,0 +1,46 @@
+From 95d6e5d7919e7096fc9f77b0a46667f71b09ed5b Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen at redhat.com>
+Date: Fri, 23 Sep 2011 17:31:53 -0400
+Subject: [PATCH] Prevent gnome-shell getting stuck on the login screen
+
+The workaround that was committed for this didn't have the
+intended effect, since the timeout was added to the default
+main context, not the one that is used in the recursive
+mainloop.
+
+Without this patch, my login screen would freeze when hitting
+Enter in the password entry, with it, I could successfully log
+in 10 out of 10 times.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=658013
+---
+ atk-adaptor/event.c |    6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+diff --git a/atk-adaptor/event.c b/atk-adaptor/event.c
+index 79c2884..12e6556 100644
+--- a/atk-adaptor/event.c
++++ b/atk-adaptor/event.c
+@@ -100,6 +100,7 @@ send_and_allow_reentry (DBusConnection * bus, DBusMessage * message)
+   DBusPendingCall *pending;
+   SpiReentrantCallClosure closure;
+   GMainContext *main_context;
++  GSource *source;
+ 
+   main_context = (g_getenv ("AT_SPI_CLIENT") ? NULL :
+                   spi_global_app_data->main_context);
+@@ -114,7 +115,10 @@ send_and_allow_reentry (DBusConnection * bus, DBusMessage * message)
+       return NULL;
+     }
+   dbus_pending_call_set_notify (pending, set_reply, (void *) &closure, NULL);
+-  closure.timeout = g_timeout_add (500, timeout_reply, &closure);
++  source = g_timeout_source_new (500);
++  g_source_set_callback (source, timeout_reply, &closure, NULL);
++  closure.timeout = g_source_attach (source, main_context);
++  g_source_unref (source);
+   g_main_loop_run  (closure.loop);
+   if (closure.timeout != -1)
+     g_source_remove (closure.timeout);
+-- 
+1.7.6.2
+
diff --git a/at-spi2-atk.spec b/at-spi2-atk.spec
index cf097e2..49cd24a 100644
--- a/at-spi2-atk.spec
+++ b/at-spi2-atk.spec
@@ -1,6 +1,6 @@
 Name:           at-spi2-atk
 Version:        2.1.92
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        A GTK+ module that bridges ATK to D-Bus at-spi
 
 Group:          System Environment/Libraries
@@ -9,6 +9,9 @@ URL:            http://www.linuxfoundation.org/en/AT-SPI_on_D-Bus
 #VCS: git:git://git.gnome.org/at-spi-atk
 Source0:        http://download.gnome.org/sources/at-spi2-atk/2.1/%{name}-%{version}.tar.xz
 
+# https://bugzilla.gnome.org/show_bug.cgi?id=658013
+Patch0: 0001-Prevent-gnome-shell-getting-stuck-on-the-login-scree.patch
+
 BuildRequires:  at-spi2-core-devel
 BuildRequires:  dbus-devel
 BuildRequires:  dbus-glib-devel
@@ -36,6 +39,7 @@ D-Bus based at-spi.
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 %configure --disable-relocate
@@ -74,6 +78,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas
 
 
 %changelog
+* Fri Sep 23 2011 Matthias Clasen <mclasen at redhat.com> 2.1.92-2
+- Fix hangs on the login screen
+
 * Mon Sep 19 2011 Matthias Clasen <mclasen at redhat.com> 2.1.92-1
 - Update to 2.1.92
 


More information about the scm-commits mailing list