summaryrefslogtreecommitdiffstats
path: root/generic/tkTreeDisplay.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tkTreeDisplay.c')
-rw-r--r--generic/tkTreeDisplay.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/generic/tkTreeDisplay.c b/generic/tkTreeDisplay.c
index 4a3d6e9..49bd5c1 100644
--- a/generic/tkTreeDisplay.c
+++ b/generic/tkTreeDisplay.c
@@ -3,9 +3,9 @@
*
* This module implements treectrl widget's main display code.
*
- * Copyright (c) 2002-2005 Tim Baker
+ * Copyright (c) 2002-2006 Tim Baker
*
- * RCS: @(#) $Id: tkTreeDisplay.c,v 1.36 2006/08/16 00:45:21 hobbs2 Exp $
+ * RCS: @(#) $Id: tkTreeDisplay.c,v 1.37 2006/09/05 21:56:15 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -3695,7 +3695,15 @@ Tree_Display(
/* Some change requires selection changes */
if (dInfo->flags & DINFO_REDO_SELECTION) {
#ifdef SELECTION_VISIBLE
+ int abort = 0;
+ /* A <Selection> event may occur so preserve things */
+ Tcl_Preserve((ClientData) tree);
Tree_DeselectHidden(tree);
+ if (tree->deleted)
+ abort = 1;
+ Tcl_Release((ClientData) tree);
+ if (abort)
+ return;
#endif
dInfo->flags &= ~(DINFO_REDO_SELECTION);
}