Fix so UI updated immediately when match started remotely

This commit is contained in:
drdev
2015-06-13 18:43:18 +00:00
parent cbba19935a
commit 9198fb6b29
4 changed files with 16 additions and 4 deletions

View File

@@ -67,6 +67,11 @@ public class GuiDesktop implements IGuiBase {
"../forge-gui/" : ""; "../forge-gui/" : "";
} }
@Override
public void invokeInEdtNow(final Runnable proc) {
proc.run();
}
@Override @Override
public void invokeInEdtLater(final Runnable proc) { public void invokeInEdtLater(final Runnable proc) {
SwingUtilities.invokeLater(proc); SwingUtilities.invokeLater(proc);

View File

@@ -64,6 +64,12 @@ public class GuiMobile implements IGuiBase {
return assetsDir; return assetsDir;
} }
@Override
public void invokeInEdtNow(final Runnable proc) {
proc.run();
Gdx.graphics.requestRendering(); //must request rendering in case this procedure wasn't triggered by a local event
}
@Override @Override
public void invokeInEdtLater(final Runnable proc) { public void invokeInEdtLater(final Runnable proc) {
Gdx.app.postRunnable(proc); Gdx.app.postRunnable(proc);

View File

@@ -21,16 +21,16 @@ public class FThreads {
} }
} }
public static void invokeInEdtLater(final Runnable runnable) { public static void invokeInEdtLater(final Runnable proc) {
GuiBase.getInterface().invokeInEdtLater(runnable); GuiBase.getInterface().invokeInEdtLater(proc);
} }
public static void invokeInEdtNowOrLater(final Runnable proc) { public static void invokeInEdtNowOrLater(final Runnable proc) {
if (isGuiThread()) { if (isGuiThread()) {
proc.run(); GuiBase.getInterface().invokeInEdtNow(proc);
} }
else { else {
invokeInEdtLater(proc); GuiBase.getInterface().invokeInEdtLater(proc);
} }
} }

View File

@@ -21,6 +21,7 @@ public interface IGuiBase {
boolean isRunningOnDesktop(); boolean isRunningOnDesktop();
String getCurrentVersion(); String getCurrentVersion();
String getAssetsDir(); String getAssetsDir();
void invokeInEdtNow(Runnable runnable);
void invokeInEdtLater(Runnable runnable); void invokeInEdtLater(Runnable runnable);
void invokeInEdtAndWait(Runnable proc); void invokeInEdtAndWait(Runnable proc);
boolean isGuiThread(); boolean isGuiThread();