* tkcon.tcl: (InitUI) added WM_DELETE_WINDOW hook to exit to
authorJeff Hobbs <hobbs@users.sourceforge.net>
Mon, 18 Jun 2001 17:24:46 +0000 (17:24 +0000)
committerJeff Hobbs <hobbs@users.sourceforge.net>
Mon, 18 Jun 2001 17:24:46 +0000 (17:24 +0000)
correctly deconstruct slave consoles.
(tkcon congets/getc) added tkcon show to ensure that tkcon would
be displayed when input is expected.
(GetSelection) new command to handle getting selection, this
supports the new UTF8_STRING type.

ChangeLog
tkcon.tcl

index 98ac99d9e378c9a6c84b43c592779db49e2c7d85..43ea93d34902cad4ed3f12a6c0974a4522335cb2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2001-06-18  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tkcon.tcl: (InitUI) added WM_DELETE_WINDOW hook to exit to
+       correctly deconstruct slave consoles.
+       (tkcon congets/getc) added tkcon show to ensure that tkcon would
+       be displayed when input is expected.
+       (GetSelection) new command to handle getting selection, this
+       supports the new UTF8_STRING type.
+
 2001-05-28  Jeff Hobbs  <jeffh@ActiveState.com>
 
        * docs/start.html: added note about ::tkcon::OPT(gets) var.
@@ -21,6 +30,8 @@
 
 2001-05-04  Jeff Hobbs  <jeffh@ActiveState.com>
 
+       TKCON 2.1 RELEASE
+
        * docs/style.css: new file for html files to use.
        * README.txt:
        * index.html:
index 0d44e4841300a749da4eb97eb5c307cf6dfe3b16..35a2072d2cef147f9dcfe754e0e10f27e17c23ff 100755 (executable)
--- a/tkcon.tcl
+++ b/tkcon.tcl
@@ -492,6 +492,7 @@ proc ::tkcon::InitUI {title} {
     if {!$PRIV(WWW)} {
        wm withdraw $root
     }
+    wm protocol $root WM_DELETE_WINDOW exit
     set PRIV(base) $w
 
     ## Text Console
@@ -990,7 +991,7 @@ proc ::tkcon::About {} {
     if {[winfo exists $w]} {
        wm deiconify $w
     } else {
-       global tk_patchLevel tcl_patchLevel tcl_platform
+       global tk_patchLevel tcl_patchLevel
        toplevel $w
        wm title $w "About tkcon v$PRIV(version)"
        button $w.b -text Dismiss -command [list wm withdraw $w]
@@ -2463,6 +2464,7 @@ proc tkcon {cmd args} {
            if {[llength $args]} {
                return -code error "wrong # args: must be \"tkcon congets\""
            }
+           tkcon show
            set old [bind TkConsole <<TkCon_Eval>>]
            bind TkConsole <<TkCon_Eval>> { set ::tkcon::PRIV(wait) 0 }
            set w $::tkcon::PRIV(console)
@@ -2482,6 +2484,7 @@ proc tkcon {cmd args} {
            if {[llength $args]} {
                return -code error "wrong # args: must be \"tkcon getcommand\""
            }
+           tkcon show
            set old [bind TkConsole <<TkCon_Eval>>]
            bind TkConsole <<TkCon_Eval>> { set ::tkcon::PRIV(wait) 0 }
            set w $::tkcon::PRIV(console)
@@ -4026,6 +4029,17 @@ proc ::tkcon::Bindings {} {
        bind TkConsole <$paste> {::tkcon::Paste %W}
     }
 
+    proc ::tkcon::GetSelection {w} {
+       if {
+           ![catch {selection get -displayof $w -type UTF8_STRING} txt] ||
+           ![catch {selection get -displayof $w} txt] ||
+           ![catch {selection get -displayof $w -selection CLIPBOARD} txt]
+       } {
+           return $txt
+       }
+       return -code error "could not find default selection"
+    }
+
     proc ::tkcon::Cut w {
        if {[string match $w [selection own -displayof $w]]} {
            clipboard clear -displayof $w
@@ -4048,10 +4062,7 @@ proc ::tkcon::Bindings {} {
        }
     }
     proc ::tkcon::Paste w {
-       if {
-           ![catch {selection get -displayof $w} txt] ||
-           ![catch {selection get -displayof $w -selection CLIPBOARD} txt]
-       } {
+       if {![catch {GetSelection $w} txt]} {
            if {[$w compare insert < limit]} { $w mark set insert end }
            $w insert insert $txt
            $w see insert
@@ -4065,7 +4076,7 @@ proc ::tkcon::Bindings {} {
     ::tkcon::ClipboardKeysyms <Copy> <Cut> <Paste>
 
     bind TkConsole <Insert> {
-       catch { ::tkcon::Insert %W [selection get -displayof %W] }
+       catch { ::tkcon::Insert %W [::tkcon::GetSelection %W] }
     }
 
     bind TkConsole <Triple-1> {+
@@ -4219,7 +4230,7 @@ proc ::tkcon::Bindings {} {
     bind TkConsole <ButtonRelease-2> {
        if {
            (!$tkPriv(mouseMoved) || $tk_strictMotif) &&
-           ![catch {selection get -displayof %W} ::tkcon::PRIV(tmp)]
+           ![catch {::tkcon::GetSelection %W} ::tkcon::PRIV(tmp)]
        } {
            if {[%W compare @%x,%y < limit]} {
                %W insert end $::tkcon::PRIV(tmp)