スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

WinXP, NetBeans, ATOK 2011での状態取得を修正他(姫踊子草2.0013.3

こんばんは。いろいろと行き詰まりつつも道を探り続けています。現状だとかえっておかしくなったりすることもあるかもしれませんが。姫踊子草最新版のお知らせです。

  • Windows XP, NetBeans, ATOK2011の組み合わせでIMEの変換モードが姫踊子草に反映されなくなってしまう不具合を解消したつもり。
  • Windows XPにATOK2011を設置したことのある環境で姫踊子草が終了できず、タスクマネージャから強制的に終了させるまで再び姫踊子草を動作させることもできない状態について一時的な対処を行った。
  • 設定窓口で新しい設定集合を作るとき、名前を変更しようとしたとたんに強制終了されてしまう不具合を修正。

一番目のはもう試してくださいとしか言いようがないので説明省略。

二番目について。一見ちゃんと終了しているようですが実は終了してません。ただし、「ほとんど終了処理が終わった状態で停止している」ようなので、再び姫踊子草を動作させようとするとそのまま起動してしまう、ようにはしました。

なのであんまり終了・起動を繰り返したつもりでいると姫踊子草.exeがどんどん残留プロセスとして増えていきますんで念のため。

まだ原因探求を続けなければいけません。

三番目は先日設定窓口のOKボタンやキャンセルボタンへのキーボードショートカットが動作していない点を修正した際のとばっちり。こちらは比較的簡単な瑕疵だったのでそんなややこしい話ではないです。

いつもと同じく公式サイトにて最新版を公開しております。姫踊子草版2.0013号構築3番です。

20110721fix

技術的解説その1。

XP, NetBeans, ATOK2011の変換モード不受理の原因は CallWndRetProc でIMN_SETCONVERSIONSTATUS を受け取ったときに ImmGetOpenStatus も ImmGetConversionStatus も正しい値を返してくれないことが原因でした。

これ、何の不具合なのか、そもそも不具合といえるのかどうかもよくわかりませんがなんとか対処はしてみました。どうやってるのかというと、それらがおかしな値を返したときにはその後のWM_KEYUPで初めて状態取得を試みるようにいたしまして。おかしな値、というのは IMN_SETCONVERSIONSTATUS なのに ImmGetOpenStatus が偽を返すとか ImmGetConversionStatus が失敗するとか。


技術的解説その2。

姫踊子草が終了しそうでしない件、まだ原因がわかりません。こちらの環境では ATOK 2011 を入れた Windows XP でだけ終了できないというなんともな難しい状況にあります。いや、前から XP ではダメだったのかも知れないけど。

調べてもさっぱりわけわからんところからして、おそらくマルチスレッド周りを原因としたリソースリークとかそのあたりじゃないかなぁと思うわけですが。うぬー。


もう一件、同時打鍵の処理がときどきおかしくなっているんじゃないかという話があって、確かにあることはあるような気もするんですが、こちらもよくわかりません。アプリケーションを他に切り替えて戻ってくると治ることもあります。


メモ。逐次打鍵系統を姫踊子草で処理する場合、Shiftを押しながらアルファベットを叩いたときは即IMEに渡すべきじゃないのか。

comment

Secret

リンク
RSSフィード
ブログ内検索
最近のトラックバック
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。