summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--library/tk.tcl10
2 files changed, 12 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index af5e69f..be1cdba 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-07-25 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * library/tk.tcl (RestoreFocusGrab): handle the case where the
+ FocusGrab info is not set. [Bug #553283]
+
2002-07-24 Jeff Hobbs <jeffh@ActiveState.com>
* tests/canvas.test: added canvas-14.[1-6]
diff --git a/library/tk.tcl b/library/tk.tcl
index 165b56d..ea9e992 100644
--- a/library/tk.tcl
+++ b/library/tk.tcl
@@ -3,7 +3,7 @@
# Initialization script normally executed in the interpreter for each
# Tk-based application. Arranges class bindings for widgets.
#
-# RCS: @(#) $Id: tk.tcl,v 1.41 2002/06/10 00:15:42 a_kovalenko Exp $
+# RCS: @(#) $Id: tk.tcl,v 1.42 2002/07/25 20:36:55 hobbs Exp $
#
# Copyright (c) 1992-1994 The Regents of the University of California.
# Copyright (c) 1994-1996 Sun Microsystems, Inc.
@@ -153,8 +153,12 @@ proc ::tk::SetFocusGrab {grab {focus {}}} {
#
proc ::tk::RestoreFocusGrab {grab focus {destroy destroy}} {
set index "$grab,$focus"
- foreach {oldFocus oldGrab oldStatus} $::tk::FocusGrab($index) { break }
- unset ::tk::FocusGrab($index)
+ if {[info exists ::tk::FocusGrab($index)]} {
+ foreach {oldFocus oldGrab oldStatus} $::tk::FocusGrab($index) { break }
+ unset ::tk::FocusGrab($index)
+ } else {
+ set oldGrab ""
+ }
catch {focus $oldFocus}
grab release $grab