Thanks for the information. A little more testing..... With R 2.6.2 on Debian I don't get John's crash on the tkdestroy.
With R 2.6.2 on MS/Windows the "library(tcltk)" causes the gtkWindow to freeze. The tkdestroy works just fine. I haven't had a chance to test on the imminent R 2.7.0 yet. The simple test to demonstrate: > library(RGtk2) > w <- gtkWindow() > library(tcltk) # Alt-Tab between windows - the gtkWindow no longer refreshes Regards, Graham Received Sat 05 Apr 2008 10:56pm +1100 from Michael Lawrence: > Hi Graham, > > Your guess is right. The event loop stuff is handled differently on > Windows than on Unix-like OSes. There is a hook, called tcl_do that > is hard-coded into the R Windows GUI. It is called whenever the > console is idle. RGtk2 is able to hook into that to process GTK+ > events. The problem is that the two packages replace each other's > handler. So in this case tcltk is blocking GTK+ from processing its > events. > > Perhaps these packages should "chain up" to an existing > handler. I'll do that for RGtk2, but I have no control over tcltk of > course. > > Michael Received Sat 05 Apr 2008 11:09pm +1100 from Michael Lawrence: > Well this is definitely interesting. I don't even have tcl/tk installed on > my system, so I can't readily test this. RGtk2 and tcltk definitely > intersect at the event loop, but I'm not sure if these are related to that. > It could be something at the deeper X11 level. > > On Sat, Apr 5, 2008 at 4:56 AM, John Verzani <[EMAIL PROTECTED]> > wrote: > > > Dear Graham, > > > > When I try and use RGtk2 and tcltk together the act of closing a > > window in tcltk will often (if not always) cause R to crash. I'm > > guessing it has something to do with the different event loops being > > used, but I don't have anything more than that. > > > > Here is a simple test, on my 2.6.1 linux R, to show that it has > > nothing to do with rattle or pmg: > > > > > library(RGtk2) > > > w <- gtkWindow() > > > library(tcltk) > > > tt <- tktoplevel() > > > tkdestroy(tt) > > The program 'R' received an X Window System error. > > This probably reflects a bug in the program. > > The error was 'BadWindow (invalid Window parameter)'. > > (Details: serial 99 error_code 3 request_code 15 minor_code 0) > > (Note to programmers: normally, X errors are reported asynchronously; > > that is, you will receive the error a while after causing it. > > To debug your program, run it with the --sync command line > > option to change this behavior. You can then get a meaningful > > backtrace from your debugger if you break on the gdk_x_error() > > function.) > > > > --John > > > > > > > > On Sat, Apr 5, 2008 at 7:06 AM, Graham Williams > > <[EMAIL PROTECTED]> wrote: > > > Hi John, > > > > > > Meant to include you in this in case you had come across the problem? > > > (Rattle uses RGtk2 and the problem I describe here affects pmg also.) > > > > > > Regards, > > > Graham > > > > > > ----- Forwarded message from Graham Williams < > > [EMAIL PROTECTED]> ----- > > > > > > Subject: Odd tcltk and Rattle interference on MS/Windows > > > From: Graham Williams <[EMAIL PROTECTED]> > > > Date: Sat, 5 Apr 2008 21:57:11 +1100 > > > To: Michael Lawrence <[EMAIL PROTECTED]> > > > Reply-To: [EMAIL PROTECTED] > > > User-Agent: Mutt/1.5.17+20080114 (2008-01-14) > > > > > > Hi Michael, > > > > > > I'm not sure if this is RGtk2 related yet, but just in case it rang > > > any bells with you.... I'm using version 2.12.5 on R 2.6.2. > > > > > > On MS/Windows (not on GNU/Linux) if the tcltk package is loaded whilst > > > Rattle is running, Rattle freezes (or is running exceedingly > > > slowly). If tcltk is loaded before Rattle is started, all is okay! > > > > > > I.e., The following order of things works just fine: > > > > > > > library(rattle) > > > > library(tcltk) > > > > rattle() > > > > > > But the following freezes Rattle: > > > > > > > library(rattle) > > > > rattle() > > > > library(tcltk) > > > > > > I'm thinking it is an issue between RGtk2 and tcltk, but don't have > > > any good evidence yet. However, pmg is also affected in exactly the > > > same way, viz: > > > h > > > > library(tcltk) > > > > library(pmg) > > > > > > works just fine but > > > > > > > library(pmg) > > > > library(tcltk) > > > > > > results in pmg freezing. > > > > > > Any ideas - is it perhaps tcltk's problem? > > > > > > Regards, > > > Graham > > > > > > ----- End forwarded message ----- > > > > > > -- > > > This message has been scanned for viruses and > > > dangerous content by MailScanner, and is > > > believed to be clean. > > > > > > > > > > > > > > -- > > John Verzani > > CUNY/CSI Department of Mathematics > > [EMAIL PROTECTED] > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel