From: nagai@... Date: 2002-07-19T11:12:33+09:00 Subject: Re: Tk: event.widget.callback_break Hi, # Sorry too late. But I'm a little busy. :-) From: Albert Wagner Subject: Tk: event.widget.callback_break Date: Thu, 18 Jul 2002 01:40:55 +0900 Message-ID: <200207171132.41734.alwagner@tcac.net> > Did Tk change between 1.6.5 and 1.6.7? After several months occupied with > other chores, and then installing 1.6.7 I find that some old code (vintage > 1.6.5) using TkText::callback_break no longer works. From: Albert Wagner Subject: callback_break, callback_continue Date: Thu, 18 Jul 2002 09:09:01 -0500 Message-ID: <200207180909.01670.alwagner@tcac.net> > I'm trying to run some old code in Ruby-1.6.7 on Linux. But something > appears to have changed in Ruby/Tk since I wrote it. Code like: > > event.widget.callback_break > > now returns an error: > > Exception `TkCallbackBreak' at /usr/lib/ruby/1.6/tk.rb:487 - Tk callback > returns 'break' status Unfortunately, I cannot re-generate this problem. The following script is running correctly on my environment. ---------------------------------------------- require 'tk' t = TkText.new.pack t.bind('Key-t', proc{|ev|p ev; p 'key t'; ev.widget.callback_break}) t.bind('Key-u', proc{|ev|p ev; p 'key u'; ev.widget.callback_continue}) t.bind('Key-v', proc{p 'key v'; t.callback_break; p 'end of callback'}) t.bind('Key-w', proc{p 'key w'; t.callback_continue; p 'end of callback'}) t.bind('Key-x', proc{p 'key x'; Tk.callback_break; p 'end of callback'}) t.bind('Key-y', proc{p 'key y'; p 'end of callback'}) t.bind('Key-z', proc{p 'key z'; Tk.callback_continue; p 'end of callback'}) Tk.mainloop ---------------------------------------------- Are you running your script on some debugging environment? Each of Tk.callback_break and Tk.callback_continue generates an exception to pass the status-code from Ruby to Tcl. So, if running on a ruby debugger, the debugger will catch the exception and stop running the script. -- Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)