[java-atk-wrapper] Do not defer execution to EDT when we are already in it
- From: Samuel Thibault <sthibaul src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [java-atk-wrapper] Do not defer execution to EDT when we are already in it
- Date: Fri, 14 Jun 2019 07:24:12 +0000 (UTC)
commit c7ed8bb104cd891e3fb9f020edea680d2fd44447
Author: Samuel Thibault <samuel thibault ens-lyon org>
Date: Fri Jun 14 09:04:36 2019 +0200
Do not defer execution to EDT when we are already in it
wrapper/org/GNOME/Accessibility/AtkUtil.java | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
---
diff --git a/wrapper/org/GNOME/Accessibility/AtkUtil.java b/wrapper/org/GNOME/Accessibility/AtkUtil.java
index aa4a90d..788520a 100644
--- a/wrapper/org/GNOME/Accessibility/AtkUtil.java
+++ b/wrapper/org/GNOME/Accessibility/AtkUtil.java
@@ -52,6 +52,16 @@ public class AtkUtil{
* corresponding object
*/
public static <T> T invokeInSwing (Callable <T> function, T d){
+ if (SwingUtilities.isEventDispatchThread()) {
+ // We are already running in the EDT, we can call it directly
+ try {
+ return function.call();
+ } catch (Exception ex) {
+ ex.printStackTrace(); // we can do better than this
+ return d;
+ }
+ }
+
RunnableFuture<T> wf = new FutureTask<>(function);
SwingUtilities.invokeLater(wf);
try {
@@ -70,6 +80,12 @@ public class AtkUtil{
* @param function A Runnable object that doesn't return some value
*/
public static void invokeInSwing (Runnable function){
+ if (SwingUtilities.isEventDispatchThread()) {
+ // We are already running in the EDT, we can call it directly
+ function.run();
+ return;
+ }
+
SwingUtilities.invokeLater(function);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]