Merge branch 'runelite' into question_mark_full_stop

# Conflicts:
#	runelite-client/src/main/java/com/openosrs/client/game/NPCStats.java
#	runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java
This commit is contained in:
ThatGamerBlue
2021-02-08 09:56:37 +00:00
15 changed files with 1157 additions and 152 deletions

View File

@@ -28,6 +28,7 @@ import net.runelite.api.HashTable;
import net.runelite.api.Node;
import net.runelite.api.Point;
import net.runelite.api.WidgetNode;
import net.runelite.api.events.WidgetHiddenChanged;
import net.runelite.api.events.WidgetPositioned;
import net.runelite.api.mixins.Copy;
import net.runelite.api.mixins.FieldHook;
@@ -74,6 +75,48 @@ public abstract class RSWidgetMixin implements RSWidget
rl$y = -1;
}
@Inject
@Override
public void broadcastHidden(boolean hidden)
{
WidgetHiddenChanged event = new WidgetHiddenChanged();
event.setWidget(this);
event.setHidden(hidden);
client.getCallbacks().post(event);
RSWidget[] children = getChildren();
if (children != null)
{
// recursive through children
for (RSWidget child : children)
{
// if the widget is hidden it will not magically unhide from its parent changing
if (child == null || child.isSelfHidden())
{
continue;
}
child.broadcastHidden(hidden);
}
}
// make sure we iterate nested children as well
// cannot be null
Widget[] nestedChildren = getNestedChildren();
for (Widget nestedChild : nestedChildren)
{
if (nestedChild == null || nestedChild.isSelfHidden())
{
continue;
}
((RSWidget) nestedChild).broadcastHidden(hidden);
}
}
@Inject
@Override
public void setRenderParentId(int parentId)