[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:5127] ime-font



堀口です.

 Meadowを使っているとふとIMEのフォントが変わってしまってどうにも
ならないことがしばしば起きていたのですが, 原因がわかりました.

 新しいフレームを作成して初期フレームを削除するとこの症状が起こり
ます. 全フレームでIMEフォントが FixedSysになっています.

 原因は以下の2点にありました.

   ・ime-font が default で設定される frame-parameter からはずさ
     れていた. このため x-create-frame で作成された新しいフレーム
     は default-frame-alist の設定にかかわらず ime-font 属性がデ
     フォルト(FixedSys)のままとなっていた. (初期フレームは 
     x_set_parameters で設定されいたのだと思う)

   ・mw32_WndProc<WM_EMACS_MODIFY_IME_FONT_PROP> でIMEフォント設
     定のために読んでいる f は selectec-frame ではなく 
     main-thread を持っている frame (main frame?)の frame 構造体
     である.

 というわけで, 新しいフレームを作るとその ime-font は FixedSys な
のですが, IMEフォントの設定は初期フレームの ime_font を使うのでと
りあえず正しく動いているようにみえるが, 初期フレームを削除すると 
ime_font が FixedSys のままのフレームが main frame となり, 全フレー
ムのIMEフォントが FixedSys となる.

 この状態で main frame 以外のフレームで modify-frame-parameters 
をやっても IME フォントの設定は main frame の設定を読むので変更で
きないように見えるということのようです.

 フレームごとに設定した ime-font が正しく使われるように修正しまし
た.

-- 
ほりぐちきょうたろう