永井@知能.九工大です.
From:
oshida@...
Subject: [ruby-dev:38803] Re: [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合
Date: Thu, 16 Jul 2009 11:25:42 +0900
Message-ID: <
1247711125.4a5e8f957c0d3@...>
> Bug #1774 の件、ruby-dev:38792 で
>
> > mingwやcygwinはここ数年見てません...
>
> とありましたので、trunk@24117 を Cygwin で make してみたのです。
> #それはそれで、あちらにレスしようと思います。
>
> そうしたら、、、動いてしまいました(^^;
あれま.(^_^;
> ruby は trunk@24117 素の状態で、
> ext/tk/sample/tkcombobox.rb には ruby-dev:38755 のパッチ、
> ↓を充てた状態です。
>
> > module TkCore
> > RUN_EVENTLOOP_ON_MAIN_THREAD = true
> > end
>
>
> パッチを充てない tkcombobox.rb は、
> 前回と同様に固まってしまいます。
>
> これで、一件落着、でしょうか?(^^;
TkAqua の場合と同様,完全な解決とは言えませんが,
当座の回避策としては一件落着としてもいいのでしょうね.
確認のため, ext/tk/sample/tkcombobox.rb にあてた
[ruby-dev:38755] を削り,tk.rb に以下を適用してみていただけますか?
Index: ext/tk/lib/tk.rb
===================================================================
--- ext/tk/lib/tk.rb (revision 24110)
+++ ext/tk/lib/tk.rb (working copy)
@@ -1178,7 +1178,10 @@
if WITH_RUBY_VM ### check Ruby 1.9 !!!!!!!
# *** NEED TO FIX ***
ip = TclTkIp.new(name, opts)
- if ip._invoke_without_enc('tk', 'windowingsystem') == 'aqua' &&
+ if RUBY_PLATFORM =~ /cygwin/
+ RUN_EVENTLOOP_ON_MAIN_THREAD = true
+ INTERP = ip
+ elsif ip._invoke_without_enc('tk', 'windowingsystem') == 'aqua' &&
(TclTkLib.get_version<=>[8,4,TclTkLib::RELEASE_TYPE::FINAL,6]) > 0
# *** KNOWN BUG ***
# Main event loop thread of TkAqua (> Tk8.4.9) must be the main
@@ -5636,7 +5639,7 @@
#Tk.freeze
module Tk
- RELEASE_DATE = '2009-07-12'.freeze
+ RELEASE_DATE = '2009-07-16'.freeze
autoload :AUTO_PATH, 'tk/variable'
autoload :TCL_PACKAGE_PATH, 'tk/variable'
--
永井 秀利 (
nagai@...)
九州工業大学 大学院情報工学研究院 知能情報工学研究系 知能情報メディア部門