From 5aa32dcd815719855c977ec975dd97e391cbf8b3 Mon Sep 17 00:00:00 2001 From: fvogel Date: Wed, 12 Oct 2016 18:34:49 +0000 Subject: Fixed [3588460fff] - -typevariable buggy in X11. Patch from Christian Gollwitzer --- library/tkfbox.tcl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/library/tkfbox.tcl b/library/tkfbox.tcl index a52465a..f73fdc5 100644 --- a/library/tkfbox.tcl +++ b/library/tkfbox.tcl @@ -310,6 +310,7 @@ proc ::tk::dialog::file::Config {dataName type argList} { # 5. Parse the -filetypes option # + set data(origfiletypes) $data(-filetypes) set data(-filetypes) [::tk::FDGetFileTypes $data(-filetypes)] if {![winfo exists $data(-parent)]} { @@ -1119,7 +1120,9 @@ proc ::tk::dialog::file::Done {w {selectFilePath ""}} { && [info exists data(filterType)] && $data(filterType) ne "" } then { upvar #0 $data(-typevariable) typeVariable - set typeVariable [lindex $data(filterType) 0] + set typeVariable [lindex $data(origfiletypes) \ + [lsearch -exact $data(-filetypes) $data(filterType)] 0] + } } bind $data(okBtn) {} -- cgit v0.12 From 910bf2864599dfd5aa2aa00cd5fc225c01c17146 Mon Sep 17 00:00:00 2001 From: fvogel Date: Wed, 12 Oct 2016 19:18:50 +0000 Subject: Fixed failing test filebox-3.5.0 --- tests/filebox.test | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/filebox.test b/tests/filebox.test index 2573825..41382a2 100644 --- a/tests/filebox.test +++ b/tests/filebox.test @@ -281,7 +281,11 @@ foreach mode $modes { -initialfile $fileName -initialdir $fileDir \ -typevariable tv] if {[info exists tv]} { - regexp {^(.*) \(.*\)$} $tv dummy typeName + if {$mode == 0} { + set typeName $tv + } else { + regexp {^(.*) \(.*\)$} $tv dummy typeName + } } else { set typeName "-unset-" } -- cgit v0.12 From e749f909676946687b224b350e984f013f57760e Mon Sep 17 00:00:00 2001 From: fvogel Date: Fri, 21 Oct 2016 13:51:49 +0000 Subject: Fixed [3588460fff] - -typevariable buggy in X11, this time when tk_strictMotif is true. --- library/xmfbox.tcl | 16 +++++----------- tests/filebox.test | 6 +----- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/library/xmfbox.tcl b/library/xmfbox.tcl index aa66f7f..f1daea0 100644 --- a/library/xmfbox.tcl +++ b/library/xmfbox.tcl @@ -156,7 +156,7 @@ proc ::tk::MotifFDialog_FileTypes {w} { # The filetypes radiobuttons # set data(fileType) $data(-defaulttype) # Default type to first entry - set initialTypeName [lindex $data(-filetypes) 0 0] + set initialTypeName [lindex $data(origfiletypes) 0 0] if {$data(-typevariable) ne ""} { upvar #0 $data(-typevariable) typeVariable if {[info exists typeVariable]} { @@ -165,7 +165,7 @@ proc ::tk::MotifFDialog_FileTypes {w} { } set ix 0 set data(fileType) 0 - foreach fltr $data(-filetypes) { + foreach fltr $data(origfiletypes) { set fname [lindex $fltr 0] if {[string first $initialTypeName $fname] == 0} { set data(fileType) $ix @@ -185,7 +185,7 @@ proc ::tk::MotifFDialog_FileTypes {w} { set cnt 0 if {$data(-filetypes) ne {}} { foreach type $data(-filetypes) { - set title [lindex [lindex $type 0] 0] + set title [lindex $type 0] set filter [lindex $type 1] radiobutton $f.b$cnt \ -text $title \ @@ -210,7 +210,6 @@ proc ::tk::MotifFDialog_SetFilter {w type} { variable ::tk::Priv set data(filter) [lindex $type 1] - set Priv(selectFileType) [lindex [lindex $type 0] 0] MotifFDialog_Update $w } @@ -299,6 +298,7 @@ proc ::tk::MotifFDialog_Config {dataName type argList} { # file dialog, but we check for validity of the value to make sure # the application code also runs fine with the TK file dialog. # + set data(origfiletypes) $data(-filetypes) set data(-filetypes) [::tk::FDGetFileTypes $data(-filetypes)] if {![info exists data(filter)]} { @@ -870,7 +870,7 @@ proc ::tk::MotifFDialog_ActivateSEnt {w} { if {[info exists data(-typevariable)] && $data(-typevariable) ne "" && [info exists data(-filetypes)] && $data(-filetypes) ne ""} { upvar #0 $data(-typevariable) typeVariable - set typeVariable [lindex $data(-filetypes) $data(fileType) 0] + set typeVariable [lindex $data(origfiletypes) $data(fileType) 0] } if {$data(-multiple) != 0} { @@ -980,9 +980,3 @@ proc ::tk::ListBoxKeyAccel_Reset {w} { unset -nocomplain Priv(lbAccel,$w) } -proc ::tk_getFileType {} { - variable ::tk::Priv - - return $Priv(selectFileType) -} - diff --git a/tests/filebox.test b/tests/filebox.test index 41382a2..2f87c3e 100644 --- a/tests/filebox.test +++ b/tests/filebox.test @@ -281,11 +281,7 @@ foreach mode $modes { -initialfile $fileName -initialdir $fileDir \ -typevariable tv] if {[info exists tv]} { - if {$mode == 0} { - set typeName $tv - } else { - regexp {^(.*) \(.*\)$} $tv dummy typeName - } + set typeName $tv } else { set typeName "-unset-" } -- cgit v0.12 From 3938426eec1ec1156da28475d2802ea2aa706fe5 Mon Sep 17 00:00:00 2001 From: fvogel Date: Sun, 30 Oct 2016 18:01:51 +0000 Subject: Revert unintentional removal of ::tk_getFileType that happened in [374cb204] --- library/xmfbox.tcl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/xmfbox.tcl b/library/xmfbox.tcl index f1daea0..14d2be5 100644 --- a/library/xmfbox.tcl +++ b/library/xmfbox.tcl @@ -210,6 +210,7 @@ proc ::tk::MotifFDialog_SetFilter {w type} { variable ::tk::Priv set data(filter) [lindex $type 1] + set Priv(selectFileType) [lindex [lindex $type 0] 0] MotifFDialog_Update $w } @@ -980,3 +981,9 @@ proc ::tk::ListBoxKeyAccel_Reset {w} { unset -nocomplain Priv(lbAccel,$w) } +proc ::tk_getFileType {} { + variable ::tk::Priv + + return $Priv(selectFileType) +} + -- cgit v0.12