diff options
Diffstat (limited to 'generic/Tabular.c')
-rw-r--r-- | generic/Tabular.c | 16 |
1 files changed, 12 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; } |