private void deleteDrawable(DrawableData drawable) {
        if (!drawable.customized && drawable.tint == null && drawable.tintName == null && drawable.tenPatchData == null && checkDuplicateDrawables(drawable.file, 1)) {
            showConfirmDeleteDialog(drawable);
        } else {
            removeRegionFromTenPatches(drawable);
            atlasData.getDrawables().removeValue(drawable, true);

            for (Array<StyleData> datas : jsonData.getClassStyleMap().values()) {
                for (StyleData data : datas) {
                    for (StyleProperty styleProperty : data.properties.values()) {
                        if (styleProperty != null && styleProperty.type.equals(Drawable.class) && styleProperty.value != null && styleProperty.value.equals(drawable.toString())) {
                            styleProperty.value = null;
                        }
                    }
                }
            }

            rootTable.refreshStyleProperties(true);
            rootTable.refreshPreview();

            undoableManager.clearUndoables();
            
            projectData.setChangesSaved(false);

            gatherDrawables();
            sortBySelectedMode();
        }
    }
Recreates the drawables array only including visible drawables.
core/src/com/ray3k/skincomposer/dialog/DialogDrawables.java