Hi again Michael, > > Hmm, from your previous posts I thought you would just do the call to > root.after_idle(self.replayEvents) right before root.mainloop() ? > If so, why not do > > root.deiconify() > root.update() > root.after_idle(self.replayEvents) > root.mainloop()
The problem is that I have to break in by intercepting something as the application code doesn't know I exist :) At the moment I'm intercepting the construction of Tk() which is guaranteed to happen and is easy to intercept. Intercepting mainloop is more problematic because all widgets have a mainloop method and there's no knowing which one the application will call. > > I don't think there is any risk in using update() like this. I am > afraid I did not understand you properly though, and what you are trying > is more complex than I thought. I actually don't have any experience > with gui testing tools :) > Another idea, which looks a little hackish, but maybe does the trick as > well, is to add a test if the window is visible to the replayEvents() > method and if not call it again after 100 ms or so, like: > > def replayEvents(self): > if root.winfo_ismapped(): > # do things.... > else: > root.after(100, self.replayEvents) > > Really not nice, but simple (and maybe effective?). Yes, I can maybe make it work with sleeps like this if I have to. I also haven't yet tried your solution of using "<Map>" events, which might be worth a go. Thanks for the suggestions anyway. Regards, Geoff _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss