summaryrefslogtreecommitdiffstats
path: root/generic/tkTreeItem.c
diff options
context:
space:
mode:
authortreectrl <treectrl>2006-11-09 00:11:16 (GMT)
committertreectrl <treectrl>2006-11-09 00:11:16 (GMT)
commit56d0d8a41d668a8643be9947925f5853511752fb (patch)
tree670546538e6ee7873b9f3c548d552fb9a0f5c96e /generic/tkTreeItem.c
parent2d978b79777f030942cfafb710b4eda3bb9b0768 (diff)
downloadtktreectrl-56d0d8a41d668a8643be9947925f5853511752fb.zip
tktreectrl-56d0d8a41d668a8643be9947925f5853511752fb.tar.gz
tktreectrl-56d0d8a41d668a8643be9947925f5853511752fb.tar.bz2
Moved checks of tree->updateIndex into Tree_UpdateItemIndex.
Fixed [item bbox] not working when the widget was not mapped. Fixed [item bbox] not returning an error if the element name was invalid.
Diffstat (limited to 'generic/tkTreeItem.c')
-rw-r--r--generic/tkTreeItem.c48
1 files changed, 24 insertions, 24 deletions
diff --git a/generic/tkTreeItem.c b/generic/tkTreeItem.c
index 27ba935..95acd0b 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.85 2006/11/08 07:07:19 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeItem.c,v 1.86 2006/11/09 00:11:16 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -543,6 +543,9 @@ Tree_UpdateItemIndex(
TreeItem item = tree->root;
int index = 1, indexVis = 0;
+ if (!tree->updateIndex)
+ return;
+
if (tree->debug.enable && tree->debug.data)
dbwin("Tree_UpdateItemIndex %s\n", Tk_PathName(tree->tkwin));
@@ -983,8 +986,7 @@ TreeItem_GetDepth(
)
{
#if 0
- if (tree->updateIndex)
- Tree_UpdateItemIndex(tree);
+ Tree_UpdateItemIndex(tree);
#endif
return item->depth;
}
@@ -1449,8 +1451,7 @@ TreeItem_ToIndex(
int *indexVis /* Returned Item.indexVis, may be NULL */
)
{
- if (tree->updateIndex)
- Tree_UpdateItemIndex(tree);
+ Tree_UpdateItemIndex(tree);
if (index != NULL) (*index) = item->index;
if (indexVis != NULL) (*indexVis) = item->indexVis;
}
@@ -1892,8 +1893,8 @@ TreeItemList_FromObj(
* clear the list of items and use "all". */
count = TreeItemList_Count(items);
for (i = 0; i < count; i++) {
- TreeItem item = TreeItemList_Nth(items, i);
- if (IS_ALL(item))
+ TreeItem item2 = TreeItemList_Nth(items, i);
+ if (IS_ALL(item2))
break;
}
if (i < count) {
@@ -3541,8 +3542,7 @@ int TreeItem_Indent(
if (IS_ROOT(item))
return (tree->showRoot && tree->showButtons && tree->showRootButton) ? tree->useIndent : 0;
- if (tree->updateIndex)
- Tree_UpdateItemIndex(tree);
+ Tree_UpdateItemIndex(tree);
indent = tree->useIndent * item->depth;
if (tree->showRoot || tree->showButtons || tree->showLines)
@@ -3928,7 +3928,8 @@ TreeItem_WalkSpans(
if (!Tree_AreaBbox(tree, area, &drawArgs.bounds[0], &drawArgs.bounds[1],
&drawArgs.bounds[2], &drawArgs.bounds[3])) {
- return;
+ drawArgs.bounds[0] = drawArgs.bounds[1] =
+ drawArgs.bounds[2] = drawArgs.bounds[3] = 0;
}
STATIC_ALLOC(spans, SpanInfo, columnCount);
@@ -4499,8 +4500,7 @@ int TreeItem_ReallyVisible(
)
{
#if 0
- if (tree->updateIndex)
- Tree_UpdateItemIndex(tree);
+ Tree_UpdateItemIndex(tree);
return item->indexVis != -1;
#else
if (!tree->updateIndex)
@@ -6648,7 +6648,6 @@ doneFORC:
case COMMAND_SET:
{
TreeItemList itemList, item2List;
- TreeItem item;
int states[3], stateOn, stateOff;
ItemForEach iter;
int result = TCL_OK;
@@ -6908,8 +6907,8 @@ Tree_DeselectHidden(
if (tree->selectCount < 1)
return;
- if (tree->updateIndex)
- Tree_UpdateItemIndex(tree);
+ /* This call is slow for large lists. */
+ Tree_UpdateItemIndex(tree);
TreeItemList_Init(tree, &items, tree->selectCount);
@@ -7192,8 +7191,8 @@ TreeItemCmd(
case COMMAND_BBOX:
{
int x, y, w, h;
+ int count;
TreeColumn treeColumn;
- TreeItem item = item;
XRectangle rect;
if (objc == 4) {
@@ -7214,9 +7213,13 @@ TreeItemCmd(
objc -= 5;
objv += 5;
}
- if (TreeItem_GetRects(tree, item, treeColumn,
- objc, objv, &rect) == 0)
+
+ count = TreeItem_GetRects(tree, item, treeColumn,
+ objc, objv, &rect);
+ if (count == 0)
break;
+ if (count == -1)
+ goto errorExit;
x = rect.x;
y = rect.y;
w = rect.width;
@@ -7454,8 +7457,7 @@ TreeItemCmd(
}
}
if (visible) {
- if (tree->updateIndex)
- Tree_UpdateItemIndex(tree);
+ Tree_UpdateItemIndex(tree);
Tcl_SetObjResult(interp, Tcl_NewIntObj(tree->itemVisCount));
} else {
Tcl_SetObjResult(interp, Tcl_NewIntObj(tree->itemCount));
@@ -7583,8 +7585,7 @@ TreeItemCmd(
}
case COMMAND_DUMP:
{
- if (tree->updateIndex)
- Tree_UpdateItemIndex(tree);
+ Tree_UpdateItemIndex(tree);
FormatResult(interp, "index %d indexVis %d",
item->index, item->indexVis);
break;
@@ -7742,8 +7743,7 @@ TreeItemCmd(
goto errorExit;
}
}
- if (tree->updateIndex)
- Tree_UpdateItemIndex(tree);
+ Tree_UpdateItemIndex(tree);
Tcl_SetObjResult(interp,
Tcl_NewIntObj(visible ? item->indexVis : item->index));
break;