Have atspi_accessible_get_host_application return an AtspiAccessible
authorMike Gorse <mgorse@novell.com>
Tue, 9 Nov 2010 09:07:52 +0000 (04:07 -0500)
committerMike Gorse <mgorse@novell.com>
Tue, 9 Nov 2010 09:07:52 +0000 (04:07 -0500)
atspi/atspi-accessible.c
atspi/atspi-accessible.h

index c66ad00..1c441e1 100644 (file)
@@ -480,14 +480,15 @@ atspi_accessible_get_attributes_as_array (AtspiAccessible *obj, GError **error)
  *
  * Get the containing #AtspiApplication for an object.
  *
- * Returns: the containing AtspiApplication instance for this object.
+ * Returns: (transfer full): the containing AtspiApplication instance for
+ *          this object.
  */
-AtspiApplication *
+AtspiAccessible *
 atspi_accessible_get_host_application (AtspiAccessible *obj, GError **error)
 {
-  while (obj->accessible_parent) obj = obj->accessible_parent;
-  g_warning ("atspi: TODO: Application interface");
-  //return atspi_accessible_get_application (obj);
+  while (obj->accessible_parent && atspi_accessible_get_role (obj->accessible_parent, NULL) != ATSPI_ROLE_DESKTOP_FRAME)
+    obj = obj->accessible_parent;
+  return g_object_ref (obj);
 }
 
 #if 0  // TODO: interfaces */
index 9722aee..d22db4c 100644 (file)
@@ -95,7 +95,7 @@ GHashTable * atspi_accessible_get_attributes (AtspiAccessible *obj, GError **err
 
 GArray * atspi_accessible_get_attributes_as_array (AtspiAccessible *obj, GError **error);
 
-AtspiApplication * atspi_accessible_get_host_application (AtspiAccessible *obj, GError **error);
+AtspiAccessible * atspi_accessible_get_host_application (AtspiAccessible *obj, GError **error);
 
 AtspiComponent * atspi_accessible_get_component (AtspiAccessible *accessible);
 #endif /* _ATSPI_ACCESSIBLE_H_ */