* tkcon.tcl (EvalNamespace): fixed to work when attached to a
authorJeff Hobbs <hobbs@users.sourceforge.net>
Mon, 20 Aug 2001 19:10:48 +0000 (19:10 +0000)
committerJeff Hobbs <hobbs@users.sourceforge.net>
Mon, 20 Aug 2001 19:10:48 +0000 (19:10 +0000)
foreign interpreter. [Bug #453431]
Added fix that allows access to Tk privates in 8.4.  Still needs
a long-term fix. [Bug #450865] (porter)

ChangeLog
tkcon.tcl

index b08f400d6d21317fa83fa16da871bc8e5469b6d7..cb45d58ec2726521d69b56fd7bf72116a79363fd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2001-08-20  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tkcon.tcl (EvalNamespace): fixed to work when attached to a
+       foreign interpreter. [Bug #453431]
+       Added fix that allows access to Tk privates in 8.4.  Still needs
+       a long-term fix. [Bug #450865] (porter)
+
+2001-08-03  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tkcon.tcl (EvalCmd): protected against non-existent
+       tkPriv(mouseMoved) variable
+
 2001-07-05  Jeff Hobbs  <jeffh@ActiveState.com>
 
        * tkcon.tcl (RetrieveFilter, RetrieveAuthentication): added
index b4cf9eafec22aed1c14d9a015ce1655d0736837f..ea5025d8bad8d423d8f19844d98c325ba4dc9399 100755 (executable)
--- a/tkcon.tcl
+++ b/tkcon.tcl
@@ -59,6 +59,18 @@ foreach pkg [info loaded {}] {
 }
 catch {unset pkg file name version}
 
+# Tk 8.4 makes previously exposed stuff private.
+# FIX: Update tkcon to not rely on tje private Tk code.
+#
+if {![llength [info globals tkPriv]]} {
+    ::tk::unsupported::ExposePrivateVariable tkPriv
+}
+foreach cmd {SetCursor UpDownLine Transpose ScrollPages} {
+    if {![llength [info commands tkText$cmd]]} {
+        ::tk::unsupported::ExposePrivateCommand tkText$cmd
+    }
+}
+
 # Initialize the ::tkcon namespace
 #
 namespace eval ::tkcon {
@@ -717,7 +729,7 @@ proc ::tkcon::EvalCmd {w cmd} {
                    $w tag bind $tag <Leave> \
                            [list $w tag configure $tag -under 0]
                    $w tag bind $tag <ButtonRelease-1> \
-                           "if {!\$tkPriv(mouseMoved)} \
+                           "if {!\[info exists tkPriv(mouseMoved)\] || !\$tkPriv(mouseMoved)} \
                            {[list edit -attach [Attach] -type error -- $PRIV(errorInfo)]}"
                } else {
                    $w insert output $res\n stderr
@@ -882,7 +894,8 @@ proc ::tkcon::EvalSocketClosed {} {
 ##
 proc ::tkcon::EvalNamespace { attached namespace args } {
     if {[llength $args]} {
-       uplevel \#0 $attached namespace eval [list $namespace $args]
+       uplevel \#0 $attached \
+               [list [concat [list namespace eval $namespace] $args]]
     }
 }