diff options
author | treectrl <treectrl> | 2006-11-06 02:51:24 (GMT) |
---|---|---|
committer | treectrl <treectrl> | 2006-11-06 02:51:24 (GMT) |
commit | 80e9bf379a3178ea54405c0d9d6d3954292dcef4 (patch) | |
tree | 3b8fc4f1ab8892fe2344bd86720929e5cee69ff3 | |
parent | 4bb36089d0496dcccecb2813b49f2f6c7f2b930b (diff) | |
download | tktreectrl-80e9bf379a3178ea54405c0d9d6d3954292dcef4.zip tktreectrl-80e9bf379a3178ea54405c0d9d6d3954292dcef4.tar.gz tktreectrl-80e9bf379a3178ea54405c0d9d6d3954292dcef4.tar.bz2 |
Fixed item background colors not drawing over the whole item in some cases.
-rw-r--r-- | generic/tkTreeItem.c | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/generic/tkTreeItem.c b/generic/tkTreeItem.c index 0936c4a..1344e94 100644 --- a/generic/tkTreeItem.c +++ b/generic/tkTreeItem.c @@ -5,7 +5,7 @@ * * Copyright (c) 2002-2006 Tim Baker * - * RCS: @(#) $Id: tkTreeItem.c,v 1.77 2006/11/06 01:54:09 treectrl Exp $ + * RCS: @(#) $Id: tkTreeItem.c,v 1.78 2006/11/06 02:51:24 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -3926,17 +3926,25 @@ SpanWalkProc_Draw( drawArgs->drawable = data->drawable; /* Draw background colors. */ - x = drawArgs->x; - for (i = 0; i < spanPtr->span; i++) { - int columnWidth = TreeColumn_UseWidth(treeColumn); - if ((columnWidth > 0) && (x < data->maxX) && - (x + columnWidth > data->minX)) { - ItemDrawBackground(tree, treeColumn, (Item *) item_, itemColumn, - drawArgs->drawable, x, drawArgs->y, - columnWidth, drawArgs->height, data->index); - } - x += columnWidth; - treeColumn = TreeColumn_Next(treeColumn); + if (spanPtr->span == 1) { + /* Important point: use drawArgs->width since an item's width may + * be totally different than tree->columnVis' width. */ + ItemDrawBackground(tree, treeColumn, (Item *) item_, itemColumn, + drawArgs->drawable, drawArgs->x, drawArgs->y, + drawArgs->width, drawArgs->height, data->index); + } else { + x = drawArgs->x; + for (i = 0; i < spanPtr->span; i++) { + int columnWidth = TreeColumn_UseWidth(treeColumn); + if ((columnWidth > 0) && (x < data->maxX) && + (x + columnWidth > data->minX)) { + ItemDrawBackground(tree, treeColumn, (Item *) item_, itemColumn, + drawArgs->drawable, x, drawArgs->y, + columnWidth, drawArgs->height, data->index); + } + x += columnWidth; + treeColumn = TreeColumn_Next(treeColumn); + } } if (drawArgs->style != NULL) { |