forked from pool/at-spi2-core
Accepting request 426684 from GNOME:Factory
Scripted push of project GNOME:Factory OBS-URL: https://build.opensuse.org/request/show/426684 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/at-spi2-core?expand=0&rev=71
This commit is contained in:
commit
5753a0d2e6
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:88a4de9d43139f13cca531b47b901bc1b56e0ab06ba899126644abd4ac16a143
|
||||
size 454124
|
3
at-spi2-core-2.21.4.tar.xz
Normal file
3
at-spi2-core-2.21.4.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4d996ac71c7c30c863362a0bf86e8c9803b1a189c9135ead8efe3dcac67621fe
|
||||
size 449236
|
@ -1,161 +0,0 @@
|
||||
From 253ada975e0a374e7b1a6a07d2a483dd1d8c52fa Mon Sep 17 00:00:00 2001
|
||||
From: Mike Gorse <mgorse@suse.com>
|
||||
Date: Thu, 14 Jul 2016 11:38:25 -0500
|
||||
Subject: [PATCH] at-spi-bus-launcher: session management fixes
|
||||
|
||||
At-spi-bus-launcher was attempting to register with gnome-session but
|
||||
typically failed because it was started before gnome-session is initialized.
|
||||
Now we check whether gnome-session is running and only attempt to register
|
||||
if it is; otherwise watch for SessionRunning and register when se wee it.
|
||||
|
||||
Also, handle SessionOver.
|
||||
---
|
||||
bus/at-spi-bus-launcher.c | 97 ++++++++++++++++++++++++++++++++++++++---------
|
||||
1 file changed, 80 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/bus/at-spi-bus-launcher.c b/bus/at-spi-bus-launcher.c
|
||||
index 54aa07f..50e76f4 100644
|
||||
--- a/bus/at-spi-bus-launcher.c
|
||||
+++ b/bus/at-spi-bus-launcher.c
|
||||
@@ -61,6 +61,11 @@ typedef struct {
|
||||
char *a11y_launch_error_message;
|
||||
} A11yBusLauncher;
|
||||
|
||||
+#define SM_DBUS_NAME "org.gnome.SessionManager"
|
||||
+#define SM_DBUS_PATH "/org/gnome/SessionManager"
|
||||
+#define SM_DBUS_INTERFACE "org.gnome.SessionManager"
|
||||
+
|
||||
+#define SM_CLIENT_DBUS_INTERFACE "org.gnome.SessionManager.ClientPrivate"
|
||||
static A11yBusLauncher *_global_app = NULL;
|
||||
|
||||
static const gchar introspection_xml[] =
|
||||
@@ -129,11 +134,12 @@ client_proxy_ready_cb (GObject *source_object,
|
||||
G_CALLBACK (g_signal_cb), app);
|
||||
}
|
||||
|
||||
+static GDBusProxy *sm_proxy;
|
||||
+
|
||||
static void
|
||||
register_client (A11yBusLauncher *app)
|
||||
{
|
||||
GDBusProxyFlags flags;
|
||||
- GDBusProxy *sm_proxy;
|
||||
GError *error;
|
||||
const gchar *app_id;
|
||||
const gchar *autostart_id;
|
||||
@@ -141,24 +147,12 @@ register_client (A11yBusLauncher *app)
|
||||
GVariant *parameters;
|
||||
GVariant *variant;
|
||||
gchar *object_path;
|
||||
+ static gboolean session_registered = FALSE;
|
||||
|
||||
- flags = G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES |
|
||||
- G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS;
|
||||
+ if (session_registered)
|
||||
+ return;
|
||||
|
||||
error = NULL;
|
||||
- sm_proxy = g_dbus_proxy_new_sync (app->session_bus, flags, NULL,
|
||||
- "org.gnome.SessionManager",
|
||||
- "/org/gnome/SessionManager",
|
||||
- "org.gnome.SessionManager",
|
||||
- NULL, &error);
|
||||
-
|
||||
- if (error != NULL)
|
||||
- {
|
||||
- g_warning ("Failed to get session manager proxy: %s", error->message);
|
||||
- g_error_free (error);
|
||||
-
|
||||
- return;
|
||||
- }
|
||||
|
||||
app_id = "at-spi-bus-launcher";
|
||||
autostart_id = g_getenv ("DESKTOP_AUTOSTART_ID");
|
||||
@@ -202,6 +196,75 @@ register_client (A11yBusLauncher *app)
|
||||
NULL, client_proxy_ready_cb, app);
|
||||
|
||||
g_free (object_path);
|
||||
+
|
||||
+ session_registered = TRUE;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+on_session_signal (GDBusProxy *proxy,
|
||||
+ gchar *sender_name,
|
||||
+ gchar *signal_name,
|
||||
+ GVariant *parameters,
|
||||
+ gpointer user_data)
|
||||
+{
|
||||
+ A11yBusLauncher *app = user_data;
|
||||
+
|
||||
+ if (g_strcmp0 (signal_name, "SessionOver") == 0) {
|
||||
+ g_main_loop_quit (app->loop);
|
||||
+ } else if (g_strcmp0 (signal_name, "SessionRunning") == 0) {
|
||||
+ register_client (app);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+is_session_running_ready_cb (GObject *source_object,
|
||||
+ GAsyncResult *res,
|
||||
+ gpointer user_data)
|
||||
+{
|
||||
+ GDBusProxy *proxy;
|
||||
+ A11yBusLauncher *app = user_data;
|
||||
+ GVariant *values;
|
||||
+ GError *error = NULL;
|
||||
+ gboolean is_running = FALSE;
|
||||
+
|
||||
+ proxy = G_DBUS_PROXY (source_object);
|
||||
+ values = g_dbus_proxy_call_finish (proxy, res, &error);
|
||||
+ if (values) {
|
||||
+ g_variant_get (values, "(b)", &is_running);
|
||||
+ g_variant_unref (values);
|
||||
+ }
|
||||
+ if (is_running) {
|
||||
+ register_client (app);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+static gboolean
|
||||
+session_manager_connect (A11yBusLauncher *app)
|
||||
+{
|
||||
+ GVariant *res;
|
||||
+ GError *error = NULL;
|
||||
+
|
||||
+ sm_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, 0, NULL,
|
||||
+ SM_DBUS_NAME,
|
||||
+ SM_DBUS_PATH,
|
||||
+ SM_DBUS_INTERFACE, NULL, &error);
|
||||
+
|
||||
+ if (error != NULL)
|
||||
+ {
|
||||
+ g_warning ("Failed to get session manager proxy: %s", error->message);
|
||||
+ g_error_free (error);
|
||||
+
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ g_dbus_proxy_call (sm_proxy,
|
||||
+ "IsSessionRunning", NULL,
|
||||
+ 0, 1000, NULL, is_session_running_ready_cb, app);
|
||||
+
|
||||
+ g_signal_connect (G_OBJECT (sm_proxy), "g-signal",
|
||||
+ G_CALLBACK (on_session_signal), app);
|
||||
+
|
||||
+ return (sm_proxy != NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -590,7 +653,7 @@ on_name_acquired (GDBusConnection *connection,
|
||||
{
|
||||
A11yBusLauncher *app = user_data;
|
||||
|
||||
- register_client (app);
|
||||
+ session_manager_connect (app);
|
||||
}
|
||||
|
||||
static int sigterm_pipefd[2];
|
||||
--
|
||||
2.6.6
|
||||
|
@ -1,3 +1,29 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 27 16:59:37 UTC 2016 - zaitor@opensuse.org
|
||||
|
||||
- Update to version 2.21.4:
|
||||
+ Fixed a crash in atspi_accessible_clear_cache.
|
||||
+ Fixed a crash caused by at-spi2-registryd dying.
|
||||
+ Fixed some session management issues in at-spi-bus-launcher.
|
||||
- Drop at-spi2-core-session-management.patch: Fixed upstream.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 27 16:58:37 UTC 2016 - zaitor@opensuse.org
|
||||
|
||||
- Update to version 2.21.2:
|
||||
+ Allow building without Xtst, Xi with --disable-x11.
|
||||
+ ref_accessible_desktop: don't unref reply until we're finished
|
||||
with it.
|
||||
+ Updated translations.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 27 16:57:37 UTC 2016 - zaitor@opensuse.org
|
||||
|
||||
- Update to version 2.21.1:
|
||||
+ Fix parsing of at-spi-bus-launcher command line arguments
|
||||
(bgo#765220).
|
||||
+ Build clean-ups.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 27 16:56:37 UTC 2016 - mgorse@suse.com
|
||||
|
||||
|
@ -17,16 +17,14 @@
|
||||
|
||||
|
||||
Name: at-spi2-core
|
||||
Version: 2.20.2
|
||||
Version: 2.21.4
|
||||
Release: 0
|
||||
Summary: Assistive Technology Service Provider Interface - D-Bus based implementation
|
||||
License: GPL-2.0+
|
||||
Group: System/Libraries
|
||||
Url: http://www.gnome.org/
|
||||
Source0: http://download.gnome.org/sources/at-spi2-core/2.20/%{name}-%{version}.tar.xz
|
||||
Source0: http://download.gnome.org/sources/at-spi2-core/2.21/%{name}-%{version}.tar.xz
|
||||
Source99: baselibs.conf
|
||||
# PATCH-FIX-UPSTREAM at-spi2-core-session-management.patch bsc#984109 mgorse@suse.com -- properly register at-spi-bus-launcher with gnome-session.
|
||||
Patch0: at-spi2-core-session-management.patch
|
||||
BuildRequires: intltool
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: pkgconfig(dbus-1) >= 1.0
|
||||
@ -37,7 +35,6 @@ BuildRequires: pkgconfig(gobject-introspection-1.0)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(xi)
|
||||
BuildRequires: pkgconfig(xtst)
|
||||
|
||||
# dbus-daemon is needed to have this work fine
|
||||
Requires: dbus-1
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
@ -83,7 +80,6 @@ to develop applications that require these.
|
||||
%lang_package
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
|
||||
%build
|
||||
%configure \
|
||||
|
Loading…
x
Reference in New Issue
Block a user