summaryrefslogtreecommitdiffstats
path: root/generic/tkTreeItem.c
diff options
context:
space:
mode:
authortreectrl <treectrl>2006-11-06 02:51:24 (GMT)
committertreectrl <treectrl>2006-11-06 02:51:24 (GMT)
commit80e9bf379a3178ea54405c0d9d6d3954292dcef4 (patch)
tree3b8fc4f1ab8892fe2344bd86720929e5cee69ff3 /generic/tkTreeItem.c
parent4bb36089d0496dcccecb2813b49f2f6c7f2b930b (diff)
downloadtktreectrl-80e9bf379a3178ea54405c0d9d6d3954292dcef4.zip
tktreectrl-80e9bf379a3178ea54405c0d9d6d3954292dcef4.tar.gz
tktreectrl-80e9bf379a3178ea54405c0d9d6d3954292dcef4.tar.bz2
Fixed item background colors not drawing over the whole item in some cases.
Diffstat (limited to 'generic/tkTreeItem.c')
-rw-r--r--generic/tkTreeItem.c32
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) {