summaryrefslogtreecommitdiff
path: root/atspi
diff options
context:
space:
mode:
authorMike Gorse <mgorse@novell.com>2011-05-25 10:10:10 -0500
committerMike Gorse <mgorse@novell.com>2011-05-25 10:10:10 -0500
commita72bb4c6521304c0e5dc678ce900ba7c78a86eda (patch)
tree8875d0dc3cd51e4c090e63801ed4fd88c26f3c06 /atspi
parenta92e14b38b5bad10f97aa3f59e681ca4a233579d (diff)
downloadat-spi2-core-a72bb4c6521304c0e5dc678ce900ba7c78a86eda.tar.gz
Catch toolkit name/version and AT-SPI version per-application
Diffstat (limited to 'atspi')
-rw-r--r--atspi/atspi-accessible.c39
-rw-r--r--atspi/atspi-application.c6
-rw-r--r--atspi/atspi-application.h3
3 files changed, 31 insertions, 17 deletions
diff --git a/atspi/atspi-accessible.c b/atspi/atspi-accessible.c
index 82ee43d5..f1f07885 100644
--- a/atspi/atspi-accessible.c
+++ b/atspi/atspi-accessible.c
@@ -756,13 +756,16 @@ atspi_accessible_get_application (AtspiAccessible *obj, GError **error)
gchar *
atspi_accessible_get_toolkit_name (AtspiAccessible *obj, GError **error)
{
- gchar *ret = NULL;
-
g_return_val_if_fail (obj != NULL, NULL);
- if (!_atspi_dbus_get_property (obj, atspi_interface_application, "ToolkitName", error, "s", &ret))
- return NULL;
- return ret;
+ if (!obj->parent.app)
+ return NULL;
+
+ if (!obj->parent.app->toolkit_name)
+ _atspi_dbus_get_property (obj, atspi_interface_application, "ToolkitName",
+ error, "s", &obj->parent.app->toolkit_name);
+
+ return g_strdup (obj->parent.app->toolkit_name);
}
/**
@@ -778,13 +781,16 @@ atspi_accessible_get_toolkit_name (AtspiAccessible *obj, GError **error)
gchar *
atspi_accessible_get_toolkit_version (AtspiAccessible *obj, GError **error)
{
- gchar *ret = NULL;
-
g_return_val_if_fail (obj != NULL, NULL);
- if (!_atspi_dbus_get_property (obj, atspi_interface_application, "Version", error, "s", &ret))
- return NULL;
- return ret;
+ if (!obj->parent.app)
+ return NULL;
+
+ if (!obj->parent.app->toolkit_version)
+ _atspi_dbus_get_property (obj, atspi_interface_application, "Version",
+ error, "s", &obj->parent.app->toolkit_version);
+
+ return g_strdup (obj->parent.app->toolkit_version);
}
/**
@@ -801,13 +807,16 @@ atspi_accessible_get_toolkit_version (AtspiAccessible *obj, GError **error)
gchar *
atspi_accessible_get_atspi_version (AtspiAccessible *obj, GError **error)
{
- gchar *ret = NULL;
-
g_return_val_if_fail (obj != NULL, NULL);
- if (!_atspi_dbus_get_property (obj, atspi_interface_application, "AtspiVersion", error, "s", &ret))
- return NULL;
- return ret;
+ if (!obj->parent.app)
+ return NULL;
+
+ if (!obj->parent.app->atspi_version)
+ _atspi_dbus_get_property (obj, atspi_interface_application, "AtspiVersion",
+ error, "s", &obj->parent.app->atspi_version);
+
+ return g_strdup (obj->parent.app->atspi_version);
}
/**
diff --git a/atspi/atspi-application.c b/atspi/atspi-application.c
index 722d8aae..49124baa 100644
--- a/atspi/atspi-application.c
+++ b/atspi/atspi-application.c
@@ -62,8 +62,10 @@ atspi_application_finalize (GObject *object)
{
AtspiApplication *application = ATSPI_APPLICATION (object);
- if (application->bus_name)
- g_free (application->bus_name);
+ g_free (application->bus_name);
+ g_free (application->toolkit_name);
+ g_free (application->toolkit_version);
+ g_free (application->atspi_version);
G_OBJECT_CLASS (atspi_application_parent_class)->finalize (object);
}
diff --git a/atspi/atspi-application.h b/atspi/atspi-application.h
index bb159783..f209275a 100644
--- a/atspi/atspi-application.h
+++ b/atspi/atspi-application.h
@@ -45,6 +45,9 @@ struct _AtspiApplication
DBusConnection *bus;
struct _AtspiAccessible *root;
AtspiCache cache;
+ gchar *toolkit_name;
+ gchar *toolkit_version;
+ gchar *atspi_version;
};
typedef struct _AtspiApplicationClass AtspiApplicationClass;