summaryrefslogtreecommitdiff
path: root/Build/source/libs/graphite2/graphite2-src/src/gr_face.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/graphite2/graphite2-src/src/gr_face.cpp')
-rw-r--r--Build/source/libs/graphite2/graphite2-src/src/gr_face.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/Build/source/libs/graphite2/graphite2-src/src/gr_face.cpp b/Build/source/libs/graphite2/graphite2-src/src/gr_face.cpp
index 712aa115fa7..baa469727bb 100644
--- a/Build/source/libs/graphite2/graphite2-src/src/gr_face.cpp
+++ b/Build/source/libs/graphite2/graphite2-src/src/gr_face.cpp
@@ -163,14 +163,25 @@ const gr_feature_ref* gr_face_find_fref(const gr_face* pFace, gr_uint32 featId)
unsigned short gr_face_n_fref(const gr_face* pFace)
{
assert(pFace);
- return pFace->numFeatures();
+ int res = 0;
+ for (int i = 0; i < pFace->numFeatures(); ++i)
+ if (!(pFace->feature(i)->getFlags() & FeatureRef::HIDDEN))
+ ++res;
+ return res;
}
const gr_feature_ref* gr_face_fref(const gr_face* pFace, gr_uint16 i) //When finished with the FeatureRef, call destroy_FeatureRef
{
assert(pFace);
- const FeatureRef* pRef = pFace->feature(i);
- return static_cast<const gr_feature_ref*>(pRef);
+ int count = 0;
+ for (int j = 0; j < pFace->numFeatures(); ++j)
+ {
+ const FeatureRef* pRef = pFace->feature(j);
+ if (!(pRef->getFlags() & FeatureRef::HIDDEN))
+ if (count++ == i)
+ return static_cast<const gr_feature_ref*>(pRef);
+ }
+ return 0;
}
unsigned short gr_face_n_languages(const gr_face* pFace)