diff options
Diffstat (limited to 'generic/tkTreeDisplay.c')
-rw-r--r-- | generic/tkTreeDisplay.c | 12 |
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); } |