summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortmh <tmh>2008-08-25 17:22:40 (GMT)
committertmh <tmh>2008-08-25 17:22:40 (GMT)
commitb55a0f690d350f81196d43acef846c608640e6bd (patch)
tree0192f19aefc9430268a4a1e424c2094a003976a7
parent8e04a7f82f31ef347a39c58d53f4b3d3d52dc323 (diff)
downloadtk-b55a0f690d350f81196d43acef846c608640e6bd.zip
tk-b55a0f690d350f81196d43acef846c608640e6bd.tar.gz
tk-b55a0f690d350f81196d43acef846c608640e6bd.tar.bz2
fix for bug tracker id 1936220 backported from tk8.6
-rw-r--r--ChangeLog7
-rw-r--r--library/tkfbox.tcl27
2 files changed, 14 insertions, 20 deletions
diff --git a/ChangeLog b/ChangeLog
index 11cd2be..c402097 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-08-25 Todd M. Helfter <tmh@users.sourceforge.net>
+
+ The patch is associated with the bug tracker id: 1936220
+ library/tkfbox.tcl : fix the multiple selection error for
+ tk_getOpenFile -multiple 1 which fails on all unix platforms since
+ the adoption of ttk widgets.
+
2008-08-19 Joe English <jenglish@users.sourceforge.net>
* generic/ttk/ttkScroll.c: Don't use sprintf "%g" to
diff --git a/library/tkfbox.tcl b/library/tkfbox.tcl
index cb8cd41..8fb64b3 100644
--- a/library/tkfbox.tcl
+++ b/library/tkfbox.tcl
@@ -11,7 +11,7 @@
# files by clicking on the file icons or by entering a filename
# in the "Filename:" entry.
#
-# RCS: @(#) $Id: tkfbox.tcl,v 1.68 2007/12/13 15:26:27 dgp Exp $
+# RCS: @(#) $Id: tkfbox.tcl,v 1.68.2.1 2008/08/25 17:22:40 tmh Exp $
#
# Copyright (c) 1994-1998 Sun Microsystems, Inc.
#
@@ -581,12 +581,11 @@ proc ::tk::IconList_ShiftBtn1 {w x y} {
if {$i eq ""} {
return
}
- set a [IconList_Index $w anchor]
- if {$a eq ""} {
- set a $i
+ if {[IconList_Index $w anchor] eq ""} {
+ IconList_Selection $w anchor $i
}
IconList_Selection $w clear 0 end
- IconList_Selection $w set $a $i
+ IconList_Selection $w set anchor $i
}
}
@@ -1608,20 +1607,8 @@ proc ::tk::dialog::file::ActivateEnt {w} {
set text [$data(ent) get]
if {$data(-multiple)} {
- # For the multiple case we have to be careful to get the file
- # names as a true list, watching out for a single file with a
- # space in the name. Thus we query the IconList directly.
-
- set selIcos [::tk::IconList_CurSelection $data(icons)]
- set data(selectFile) ""
- if {[llength $selIcos] == 0 && $text ne ""} {
- # This assumes the user typed something in without selecting
- # files - so assume they only type in a single filename.
- VerifyFileName $w $text
- } else {
- foreach item $selIcos {
- VerifyFileName $w [::tk::IconList_Get $data(icons) $item]
- }
+ foreach t $text {
+ VerifyFileName $w $t
}
} else {
VerifyFileName $w $text
@@ -1783,7 +1770,7 @@ proc ::tk::dialog::file::ListBrowse {w} {
if {[llength $text] == 0} {
return
}
- if { [llength $text] > 1 } {
+ if {$data(-multiple)} {
set newtext {}
foreach file $text {
set fullfile [JoinFile $data(selectPath) $file]