Merge pull request #706 from devLotto/widget-ishidden-fix

Fix Widget#isHidden returning incorrect state
This commit is contained in:
Adam
2018-02-26 17:09:14 -05:00
committed by GitHub
4 changed files with 27 additions and 1 deletions

View File

@@ -41,6 +41,7 @@ public class InventoryWidgetItemQuery extends WidgetItemQuery
WidgetInfo.DEPOSIT_BOX_INVENTORY_ITEMS_CONTAINER,
WidgetInfo.BANK_INVENTORY_ITEMS_CONTAINER,
WidgetInfo.SHOP_INVENTORY_ITEMS_CONTAINER,
WidgetInfo.GRAND_EXCHANGE_INVENTORY_ITEMS_CONTAINER,
WidgetInfo.INVENTORY
};

View File

@@ -29,6 +29,7 @@ public class WidgetID
public static final int LOGOUT_PANEL_ID = 182;
public static final int BANK_GROUP_ID = 12;
public static final int BANK_INVENTORY_GROUP_ID = 15;
public static final int GRAND_EXCHANGE_INVENTORY_GROUP_ID = 467;
public static final int DEPOSIT_BOX_GROUP_ID = 192;
public static final int INVENTORY_GROUP_ID = 149;
public static final int EQUIPMENT_GROUP_ID = 387;
@@ -127,6 +128,11 @@ public class WidgetID
static final int INVENTORY_ITEM_CONTAINER = 3;
}
static class GrandExchange
{
static final int INVENTORY_ITEM_CONTAINER = 0;
}
static class DepositBox
{
static final int INVENTORY_ITEM_CONTAINER = 2;

View File

@@ -86,6 +86,9 @@ public enum WidgetInfo
BANK_ITEM_CONTAINER(WidgetID.BANK_GROUP_ID, WidgetID.Bank.ITEM_CONTAINER),
BANK_INVENTORY_ITEMS_CONTAINER(WidgetID.BANK_INVENTORY_GROUP_ID, WidgetID.Bank.INVENTORY_ITEM_CONTAINER),
GRAND_EXCHANGE_INVENTORY_ITEMS_CONTAINER(WidgetID.GRAND_EXCHANGE_INVENTORY_GROUP_ID, WidgetID.GrandExchange.INVENTORY_ITEM_CONTAINER),
DEPOSIT_BOX_INVENTORY_ITEMS_CONTAINER(WidgetID.DEPOSIT_BOX_GROUP_ID, WidgetID.DepositBox.INVENTORY_ITEM_CONTAINER),
SHOP_ITEMS_CONTAINER(WidgetID.SHOP_GROUP_ID, WidgetID.Shop.ITEMS_CONTAINER),

View File

@@ -117,7 +117,23 @@ public abstract class RSWidgetMixin implements RSWidget
public boolean isHidden()
{
Widget parent = getParent();
return (parent != null && parent.isHidden()) || isRSHidden();
if (parent == null)
{
if (TO_GROUP(getId()) != client.getWidgetRoot())
{
// Widget has no parent and is not the root widget (which is always visible),
// so it's not visible.
return true;
}
}
else if (parent.isHidden())
{
// If the parent is hidden, this widget is also hidden.
return true;
}
return isRSHidden();
}
@Inject