diff options
Diffstat (limited to 'generic')
-rw-r--r-- | generic/Tabular.c | 16 | ||||
-rw-r--r-- | generic/Track.c | 3 |
2 files changed, 15 insertions, 4 deletions
diff --git a/generic/Tabular.c b/generic/Tabular.c index 1cbe425..5a0acb4 100644 --- a/generic/Tabular.c +++ b/generic/Tabular.c @@ -350,7 +350,12 @@ IsSensitive(Item item, !item->parent->class->IsSensitive(item->parent, ZN_NO_PART)) { return False; } - return ITEM_P.IsFieldSensitive(&((TabularItem) item)->field_set, item_part); + if (item_part == ZN_NO_PART) { + return ISSET(item->flags, SENSITIVE_BIT); + } + else { + return ITEM_P.IsFieldSensitive(&((TabularItem) item)->field_set, item_part); + } } @@ -374,9 +379,12 @@ Pick(Item item, double dist; dist = ITEM_P.FieldsPick(&((TabularItem) item)->field_set, p, &best_part); - /* printf("tabular %d reporting part %d, distance %lf\n", - item->id, best_part, dist); */ - + /*printf("tabular %d reporting part %d, distance %lf\n", + item->id, best_part, dist);*/ + if (dist <= 0.0) { + dist = 0.0; + } + *part = best_part; return dist; } diff --git a/generic/Track.c b/generic/Track.c index fb6a587..0b741b0 100644 --- a/generic/Track.c +++ b/generic/Track.c @@ -1265,6 +1265,9 @@ IsSensitive(Item item, else if (item_part >= 0) { return ITEM_P.IsFieldSensitive(&((TrackItem) item)->field_set, item_part); } + else if (item_part == ZN_NO_PART) { + return ISSET(item->flags, SENSITIVE_BIT); + } return True; } |