[Scim-imengine-dev 1219] Re: Gtk以外のアプリケーションで再変換

Back to archive index

Takuro Ashie ashie****@homa*****
2006年 7月 10日 (月) 16:04:10 JST


足永です。

On Mon, 10 Jul 2006 00:37:36 +0900
Takashi Nakamoto <blued****@bpost*****> wrote:

> さて、本題ですが、OpenOffice.org(on Gnome)とscim-anthyの組合せで再変換が
> できません。原因追及のために先週scim、scim-anthy、OpenOffice.orgのコー
> ドと睨めっこしてました。原因は OpenOffice.orgではGtkIMContextの
> gtk_im_context_get_surrounding()が常に falseを返すようになっているからで
> した(多分)。これについては、そのうち修正しようと思います。

すばらしい。期待してます:)


> けれども、再変換するだけならば別に SurroundingText はいらないのではない
> かと思い、添付のパッチを作ってみました。説明がめんどうなのでこのパッチが
> 何をするのかの説明は省きますが、一応Gtk+以外のアプリケーションでも再変換
> ができるようになると思います。
> 
> ただし、このパッチは
>  * X SelectionのPRIMARYに再変換したい文字列が格納されている
>  * 文字列をcommitすれば、再変換したい文字列にcommitした文字列が上書きさ
>    れる
> ことを前提としています。

大抵はこれでうまくいきますし、むしろsurrounding textを使う方法では前後に
同じ文字列があると誤動作するので、こっちのほうが良い場合が多いとは思いま
す。

> ので、このパッチがうまく動作します。しかし、Emacsでは文字列を選択してい
> る間になにか文字を入力しても、選択中の文字列に入力した文字列が上書きされ
> ないため、期待しない動作をしますが、それはEmacsがそういう実装をしている
> ので仕方ありません。

アプリケーション側がそういう実装であることを期待してしまうことになり、動
作が不確実なのがどうかな、ということでsurrounding textを使う方法を選んだ
わけですが、surrounding textも上述のように不確実なので、どうせどちらも
ad-hocな解であるならば、より多くのアプリケーションでの動作が期待できる中
本さんのパッチの方が良いのかもしれません。

というわけで、取り込む方向で考えたいと思います。

もちろん、より確実に再変換を実装するためには、ちゃんとしたAPIとアプリ
ケーション側の対応が必要です。アプリケーション側で比較的労力をかけずに済
む方法は、選択範囲文字列を取得するAPIを追加することかなと思っています。



Scim-imengine-dev メーリングリストの案内
Back to archive index