interfacestyles: Run on game thread (#3129)

To prevent conflicts with game thread, move all client related logic to game thread
This commit is contained in:
Abex
2018-05-23 05:16:57 -06:00
committed by Tomas Slusny
parent abc8028106
commit 78b6a5b836

View File

@@ -44,6 +44,7 @@ import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.WidgetPositioned; import net.runelite.api.events.WidgetPositioned;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.game.SpriteManager; import net.runelite.client.game.SpriteManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
@@ -59,6 +60,9 @@ public class InterfaceStylesPlugin extends Plugin
@Inject @Inject
private Client client; private Client client;
@Inject
private ClientThread clientThread;
@Inject @Inject
private InterfaceStylesConfig config; private InterfaceStylesConfig config;
@@ -74,17 +78,23 @@ public class InterfaceStylesPlugin extends Plugin
@Override @Override
protected void startUp() throws Exception protected void startUp() throws Exception
{ {
overrideSprites(); clientThread.invokeLater(() ->
overrideWidgetSprites(); {
restoreWidgetDimensions(); overrideSprites();
adjustWidgetDimensions(); overrideWidgetSprites();
restoreWidgetDimensions();
adjustWidgetDimensions();
});
} }
@Override @Override
protected void shutDown() throws Exception protected void shutDown() throws Exception
{ {
restoreWidgetDimensions(); clientThread.invokeLater(() ->
removeGameframe(); {
restoreWidgetDimensions();
removeGameframe();
});
} }
@Subscribe @Subscribe
@@ -92,11 +102,14 @@ public class InterfaceStylesPlugin extends Plugin
{ {
if (config.getGroup().equals("interfaceStyles")) if (config.getGroup().equals("interfaceStyles"))
{ {
removeGameframe(); clientThread.invokeLater(() ->
overrideSprites(); {
overrideWidgetSprites(); removeGameframe();
restoreWidgetDimensions(); overrideSprites();
adjustWidgetDimensions(); overrideWidgetSprites();
restoreWidgetDimensions();
adjustWidgetDimensions();
});
} }
} }