Bug-org 1130935 [IMM] Support vertical writing mode
初回投稿日時: 2015年06月06日13時04分55秒
最終更新日時: 2015年06月06日13時31分39秒
カテゴリ: Mozilla Core Mozilla41 Windows バグ修正
SNS:
Tweet (list)
writing-mode: vertical-lr;
や、writing-mode: vertical-rl;
でエディタを縦書きにした際にIMMのIMEも縦書きに対応させようというバグです。
IMMでは縦書きはAPIレベルではサポートされていないのですが、composition fontに@で始まる縦書き用のフォント名を指定した場合に、IMEが縦書きをサポートしているなら、縦書きのUIや操作形態に切り替えるという暗黙のルールがあります。ですので、最初は単純にcomposition fontを取得し、その頭に@を付けたり外したりして再設定することでIMMモードで動いているIMEのUIも切り替える予定でした。しかし、色々とIMEごとに問題があり、様々なprefを追加することで、最悪の場合はユーザ自身で自分の利用しているIME用に設定を変更する必要があります。
intl.imm.composition_font
-
通常、Geckoはcomposition fontを取得し、それを横書き用、@を付けて縦書き用とします。しかし、特定のフォントを指定しておかないとUIが崩れる環境では、この設定にフォント名を設定しておけば、常にそのフォントを利用するようになります。
縦書き時には自動的に@を追加して利用されますので、@で始まらない、横書き用のフォントを指定しておいてください。また、そのフォントが縦書きに対応していることも確認しておいてください。
intl.imm.composition_font.japanist_2003
-
通常、デフォルトのcomposition fontは
System
です。しかし、Japanist 2003に対して@System
を設定すると、候補ウインドウのレイアウトが壊れるバグがあります。これを回避するために、Japanist 2003専用のcomposition fontを指定するprefを用意しています。このprefのデフォルト値は
MS PGothic
です。 intl.imm.vertical_writing.always_assume_not_supported
-
Geckoは、現在アクティブなIMEが縦書きに対応しているかどうか、IMEのプロパティを取得して検査します。しかし、Google Chromeのように、未確定文字列の表示にだけ縦書き対応しているものの、候補ウインドウ位置の配置が縦書きに対応していないようなケースも考えられます。
もし、あなたの利用しているIMEが縦書きに対応していない場合、このprefを
true
に変更しておけば、Geckoは常に、そのIMEが縦書きに対応していないものと仮定して、未確定文字列と候補ウインドウが重ならないように、候補ウインドウ位置を調整します。 intl.imm.japanese.assume_active_tip_name_as
-
Windowsは、アクティブなIMEがTSFに対応しているTIPの場合にTSFに対応していないアプリ上では、CUASという仕組みを用いて、アプリから見ると複数のTIPが一つの同じIMEに見えるようなトリックを使っています。
例えば、Windows 8以降では、Google日本語入力はTIPとしてインストールされていますので、IMMモードで動作しているGeckoからは、アクティブなIMEの名前やプロパティが取得できないため、縦書き非対応のIMEとして処理することができません。
もし、Windows 8以降でGoogle日本語入力のみを利用している場合、この設定値を
Google 日本語入力 IMM32 モジュール
としておくと、TIPがアクティブな間は、常にそのIMEをGoogle日本語入力だと仮定して動作するようになります(ちなみに、Firefox 40以降、TSFモードが標準で有効になるため、Google日本語入力のユーザは、自分でTSFモードを無効化しない限りはこの設定を行う必要はありません)。
現在、縦書きのサポートがいつからリリース版で標準で有効になるかは不明ですが、縦書きがサポートされた場合、TSFモードを無効にしない方が無難です。また、縦書きのエディタを使うことがある場合は、Google日本語入力以外の縦書きに対応したTIP(MS-IMEやATOK等)を利用することをお勧めします。