[java-atk-wrapper] Delegate getArrayAccessibleState call to EDT
- From: Samuel Thibault <sthibaul src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [java-atk-wrapper] Delegate getArrayAccessibleState call to EDT
- Date: Mon, 17 Jun 2019 22:21:04 +0000 (UTC)
commit fa3e01b75a30c91ae690a45b59976e59981bb63f
Author: Giuseppe <giuseppecapaldo93 gmail com>
Date: Tue Jun 18 00:20:15 2019 +0200
Delegate getArrayAccessibleState call to EDT
jni/src/jawobject.c | 26 +++++++-------------------
wrapper/org/GNOME/Accessibility/AtkObject.java | 10 ++++++++++
2 files changed, 17 insertions(+), 19 deletions(-)
---
diff --git a/jni/src/jawobject.c b/jni/src/jawobject.c
index dab4552..cbf3e77 100644
--- a/jni/src/jawobject.c
+++ b/jni/src/jawobject.c
@@ -466,25 +466,14 @@ jaw_object_ref_state_set (AtkObject *atk_obj)
if (!ac) {
return NULL;
}
- jclass classAccessibleContext = (*jniEnv)->FindClass(jniEnv,
- "javax/accessibility/AccessibleContext" );
- jmethodID jmid = (*jniEnv)->GetMethodID(jniEnv,
- classAccessibleContext,
- "getAccessibleStateSet",
- "()Ljavax/accessibility/AccessibleStateSet;" );
- jobject jstate_set = (*jniEnv)->CallObjectMethod( jniEnv, ac, jmid );
- (*jniEnv)->DeleteGlobalRef(jniEnv, ac);
- if (jstate_set == NULL)
- return NULL;
- jclass classAccessibleStateSet = (*jniEnv)->FindClass(jniEnv,
- "javax/accessibility/AccessibleStateSet" );
- jmid = (*jniEnv)->GetMethodID(jniEnv,
- classAccessibleStateSet,
- "toArray",
- "()[Ljavax/accessibility/AccessibleState;");
+ jclass atkObject = (*jniEnv)->FindClass (jniEnv, "org/GNOME/Accessibility/AtkObject");
+ jmethodID jmid = (*jniEnv)->GetStaticMethodID (jniEnv, atkObject, "getArrayAccessibleState",
"(Ljavax/accessibility/AccessibleContext;)[Ljavax/accessibility/AccessibleState;");
+ jobject jstate_arr = (*jniEnv)->CallStaticObjectMethod (jniEnv, atkObject, jmid, ac);
- jobjectArray jstate_arr = (*jniEnv)->CallObjectMethod( jniEnv, jstate_set, jmid );
+ (*jniEnv)->DeleteGlobalRef(jniEnv, ac);
+ if (jstate_arr == NULL)
+ return NULL;
jsize jarr_size = (*jniEnv)->GetArrayLength(jniEnv, jstate_arr);
jsize i;
@@ -499,8 +488,7 @@ jaw_object_ref_state_set (AtkObject *atk_obj)
}
}
- if (G_OBJECT(state_set) != NULL)
- g_object_ref(G_OBJECT(state_set));
+ g_object_ref(G_OBJECT(state_set));
return state_set;
}
diff --git a/wrapper/org/GNOME/Accessibility/AtkObject.java b/wrapper/org/GNOME/Accessibility/AtkObject.java
index 2516508..2d8037c 100644
--- a/wrapper/org/GNOME/Accessibility/AtkObject.java
+++ b/wrapper/org/GNOME/Accessibility/AtkObject.java
@@ -80,6 +80,16 @@ public class AtkObject{
return displayString.equalsIgnoreCase("paragraph");
}
+ public static AccessibleState[] getArrayAccessibleState(AccessibleContext ac){
+ return AtkUtil.invokeInSwing( () -> {
+ AccessibleStateSet stateSet = ac.getAccessibleStateSet();
+ if (stateSet == null)
+ return null;
+ else
+ return stateSet.toArray();
+ }, null);
+ }
+
public static int hashCode(AccessibleContext ac){
return AtkUtil.invokeInSwing( () -> { return ac.hashCode(); }, 0);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]