From 27ef2062be90507b52d4e5aaa680328b36a1fe22 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sep 23 2011 21:45:03 +0000 Subject: fix hangs on the login screen --- 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 +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 2.1.92-2 +- Fix hangs on the login screen + * Mon Sep 19 2011 Matthias Clasen 2.1.92-1 - Update to 2.1.92