[Rd] tcltk freezing using MS Windows for R-2.14+
rcaloger
raffaele.calogero at gmail.com
Mon Nov 19 07:44:40 CET 2012
Hi Keith,
I confirm that the problem of tcltk freezing window was reported by
windows oneChannelGUI users.
I also submitted the problem to R-bugs, but I could not manage to
convince them that the problem is not due to the package.
Cheers
Raffaele
On 11/19/12 6:05 AM, Keith wrote:
> I am the maintainer of a Bioconductor package (affylmGUI) which uses
> tcltk. It freezes inconsistently on MS Windows, but not Mac or Unix.
> see details below.
>
> After considerable testing I have reduced the problem from a few
> thousand lines of code to 30 lines!
>
> If you paste the following lines of code into an R window:
>
>
> testGUI <- function(){
> require(tcltk)
> MainWindow <- tktoplevel()
> topMenu <- tkmenu(MainWindow)
> tkconfigure(MainWindow,menu=topMenu)
> normalizeMenu <- tkmenu(topMenu, tearoff=FALSE)
> tkadd(normalizeMenu,"command",label="Normalize",command =
> function() NormalizeNow(MainWindow))
> tkadd(topMenu, "cascade", label="MainWindow", menu = normalizeMenu)
> tkfocus(MainWindow)
> #
> }#end of testGUI <- function()
> #
> NormalizeNow <- function(MainWindow){
> NMethod <- GetNMethod(MainWindow)
> if (NMethod=="") return()
> tkconfigure(MainWindow,cursor="watch")
> tkfocus(MainWindow)
> }#end of NormalizeNow <- function(){
> #
> GetNMethod <- function(MainWindow){
> ReturnVal <- "RMA"
> GNMethod <- tktoplevel(MainWindow)
> tkwm.deiconify(GNMethod)
> tkgrab.set(GNMethod)
> tkfocus(GNMethod)
> tkwm.title(GNMethod,"Get Method")
> tkbind(GNMethod,"<Destroy>",function() {ReturnVal <-
> "";tkgrab.release(GNMethod);tkfocus(MainWindow);})
> tkwait.window(GNMethod)
> return (ReturnVal)
> }#end of GetNMethod <- function()
>
>
> and then run the function testGUI()
>
> A Main Window pops up with "Main Window" in the Menu bar. Click on
> "Main Window" and the first (and only) item on the menu drops down and
> it is called "Normalize". Clicking this opens another windows entitled
> "Get Method". If there is a problem (it is intermittent), it is
> evidenced by the fact that the "Get Method" window will not close.
>
> It cannot be closed by clicking. The window is frozen open. It can be
> moved but not closed. On MS Windows, the "Get Method" window can be
> closed using the right button close window option on the task bar
> icon Typically the problem occurs infrequently in the first 10
> presses on the "Normalize" item, but more frequently there after.
>
> I have NOT had the problem on Mac OSX or Linux.
>
> On MS Windows (I have tested on Win XP-32bit and Win7-64bit) the
> problem occurs in R-2.16.0, R-2.15.2, R-2.15.1,R-2.14.0.
>
> THERE IS NO PROBLEM WITH R-2.13.1 and R-2.13.0
>
> I have run it using debug("GetNMethod"). Stepping through the
> GetNMethod function results in freezing when asked to do the
> "tkgrab.set(GNMethod)" instruction.
>
> I would appreciate if others can confirm similar behaviour.
>
> Can anyone suggest why it worked under R-2.13.x but not in later
> versions of R.
>
> Was there a change in R that impacts with this aspect of tcltk?
>
> Is there a work around for this problem?
>
> Any suggestions appreciated,
>
> thanks
>
> Keith Satterley
> affylmGUI, limmaGUI maintainer.
> Bioinformatics Division
> The Walter and Eliza Hall Institute
> Melbourne, Australia.
>
> Some sessionInfo() outputs:
>
>
>
> Win7-64bit-R-2.15.2 testGUI() fails intermittently.
> > sessionInfo()
> R version 2.15.2 (2012-10-26)
> Platform: x86_64-w64-mingw32/x64 (64-bit)
>
> locale:
> [1] LC_COLLATE=English_Australia.1252 LC_CTYPE=C
> [3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C
> [5] LC_TIME=English_Australia.1252
>
> attached base packages:
> [1] tcltk stats graphics grDevices utils datasets
> methods base
>
>
>
> Linux x64-R-2.15.2. testGUI() works always
> R version 2.15.2 (2012-10-26)
> Platform: x86_64-unknown-linux-gnu (64-bit)
>
> locale:
> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
> [7] LC_PAPER=C LC_NAME=C
> [9] LC_ADDRESS=C LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>
> attached base packages:
> [1] tcltk stats graphics grDevices utils datasets methods
> [8] base
>
>
>
> Mac OS X R-2.15.2. testGUI() works always
> > sessionInfo()
> R version 2.15.2 (2012-10-26)
> Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
>
> locale:
> [1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8
>
> attached base packages:
> [1] tcltk stats graphics grDevices utils datasets
> methods base
>
>
>
> WinXP-32bit--R-2.15.2. testGUI() fails intermittently
> > sessionInfo()
> R version 2.15.2 (2012-10-26)
> Platform: i386-w64-mingw32/i386 (32-bit)
>
> locale:
> [1] LC_COLLATE=English_Australia.1252 LC_CTYPE=English_Australia.1252
> LC_MONETARY=English_Australia.1252 LC_NUMERIC=C
> [5] LC_TIME=English_Australia.1252
>
> attached base packages:
> [1] tcltk stats graphics grDevices utils datasets
> methods base
>
>
>
> Win7-R-2.13.1. testGUI() works always
> > sessionInfo()
> R version 2.13.1 (2011-07-08)
> Platform: x86_64-pc-mingw32/x64 (64-bit)
>
> locale:
> [1] LC_COLLATE=English_Australia.1252 LC_CTYPE=C
> [3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C
> [5] LC_TIME=English_Australia.1252
>
> attached base packages:
> [1] tcltk stats graphics grDevices utils datasets
> methods base
>
>
>
>
> ______________________________________________________________________
> The information in this email is confidential and inte...{{dropped:22}}
More information about the R-devel
mailing list