2008年2月26日

[plamo:28942] Re: Plamo 4.22 のuim での変換候補の表示位置

荒木田です.

> このへん,あまり意識したことなかったので何に依存する問題なのか分からな
> いのですが,隣接するソフトとしないソフトでリンクしているライブラリに違
> いがあったりしますか?
> # 多分,gtk+2 か,その下の ATK あたりが関係しそうだけど,このヘンがどう
> # なってるのかは全然分かっていない(苦笑

ざっと見た感じですと,こじまさんのおっしゃる通り gtk, atk あたりを
呼んでいるプログラムだと uim の変換候補がウィンドウの左下になる
傾向があるように見えます.

ちょっと長くなりますが,いくつか ldd した結果を以下につけます.
環境は 2007/10/15 Ver. の Plamo Linux 4.22 です.

例えば,希望通りに変換候補がカーソルに隣接する mlterm ですと,

% ldd /usr/bin/mlterm
linux-gate.so.1 => (0xffffe000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7fb1000)
libm.so.6 => /lib/libm.so.6 (0xb7f8d000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7f56000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7f52000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7e9b000)
libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0xb7e89000)
libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0xb7e7f000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7e51000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7de2000)
libexpat.so.0 => /usr/lib/libexpat.so.0 (0xb7dc4000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb7dbc000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb7da6000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb7cdc000)
libmkf.so.13 => /usr/lib/libmkf.so.13 (0xb7b52000)
libkik.so.10 => /usr/lib/libkik.so.10 (0xb7b4a000)
libdl.so.2 => /lib/libdl.so.2 (0xb7b46000)
libutempter.so.0 => /usr/lib/libutempter.so.0 (0xb7b44000)
libutil.so.1 => /lib/libutil.so.1 (0xb7b40000)
libc.so.6 => /lib/libc.so.6 (0xb7a2b000)
/lib/ld-linux.so.2 (0x80000000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7a18000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb7a0a000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb79ea000)

となります.これは Plamo-4.2/contrib/Xapps の mlterm-2.9.3-i386-P3.tgz
をいれたものです.

一方,期待通りの挙動をしてくれないものとして,例えば Xfce 4.4.2 の
テキストエディタ mousepad だと,

% ldd /usr/bin/mousepad
linux-gate.so.1 => (0xffffe000)
libxfcegui4.so.4 => /usr/lib/libxfcegui4.so.4 (0xb7ed3000)
libstartup-notification-1.so.0 => /usr/lib/libstartup-notification-1.so.0 (0xb7ecb000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7bb0000)
libxfce4util.so.4 => /usr/lib/libxfce4util.so.4 (0xb7ba3000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb7b23000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb7b0a000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7af4000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb7aed000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb7ac8000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7a92000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb7a20000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb79f2000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7982000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7962000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7940000)
libz.so.1 => /usr/lib/libz.so.1 (0xb792d000)
libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0xb7924000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb7916000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb790d000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb78f7000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb782e000)
libm.so.6 => /lib/libm.so.6 (0xb780a000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb77d3000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb77cf000)
libdl.so.2 => /lib/libdl.so.2 (0xb77ca000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7713000)
libc.so.6 => /lib/libc.so.6 (0xb75ff000)
libXfixes.so.3 => /usr/X11R6/lib/libXfixes.so.3 (0xb75fa000)
libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0xb75f6000)
libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0xb75ed000)
libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0xb75ea000)
libXcursor.so.1 => /usr/X11R6/lib/libXcursor.so.1 (0xb75e1000)
libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0xb75cf000)
/lib/ld-linux.so.2 (0xb7f2f000)

となります.これは Plamo-test/for-4.2x/XFce-4.4.2 配下にあるものです.

同じく期待通りの挙動にならない Firefox 2.0.0.12 だと,

% ldd /usr/lib/firefox/firefox-bin
linux-gate.so.1 => (0xffffe000)
libmozjs.so => not found
libxpcom.so => not found
libxpcom_core.so => not found
libplds4.so => not found
libplc4.so => not found
libnspr4.so => not found
libpthread.so.0 => /lib/libpthread.so.0 (0xb7f8f000)
libdl.so.2 => /lib/libdl.so.2 (0xb7f8b000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7c70000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb7bf0000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb7bd7000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7bc1000)
libpangoxft-1.0.so.0 => /usr/lib/libpangoxft-1.0.so.0 (0xb7bbb000)
libpangox-1.0.so.0 => /usr/lib/libpangox-1.0.so.0 (0xb7bb0000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7b7a000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7b43000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7b3f000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7a87000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb79be000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb79ba000)
libm.so.6 => /lib/libm.so.6 (0xb7996000)
libsmime3.so => not found
libssl3.so => not found
libnss3.so => not found
libsoftokn3.so => not found
libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0xb798c000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb795e000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb78ef000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0xb78a0000)
libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0xb788e000)
libxpcom_compat.so => not found
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xb77de000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb77d5000)
libc.so.6 => /lib/libc.so.6 (0xb76c1000)
/lib/ld-linux.so.2 (0xb7fb8000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb76b9000)
libXfixes.so.3 => /usr/X11R6/lib/libXfixes.so.3 (0xb76b4000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb7642000)
libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0xb763e000)
libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0xb7636000)
libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0xb7632000)
libXcursor.so.1 => /usr/X11R6/lib/libXcursor.so.1 (0xb7629000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb761b000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb75f6000)
librt.so.1 => /lib/librt.so.1 (0xb75e2000)
libz.so.1 => /usr/lib/libz.so.1 (0xb75ce000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb75ae000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb75a6000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb7590000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb756e000)

で,これは http://www.mozilla-japan.org/products/firefox/ から
取得したものです.

もう一つの例として,自前でコンパイルした slypheed でもメッセージ作成
ウィンドウで変換候補がウィンドウの左下になってしまい,

% ldd /usr/bin/sylpheed
linux-gate.so.1 => (0xffffe000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7bdb000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb7b5b000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb7b42000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7b2d000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb7b26000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb7ab4000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb7a8e000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7a1f000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb79e9000)
libm.so.6 => /lib/libm.so.6 (0xb79c5000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7997000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7960000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb795b000)
libgpgme.so.11 => /usr/lib/libgpgme.so.11 (0xb7939000)
libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0xb7935000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb787e000)
libnsl.so.1 => /lib/libnsl.so.1 (0xb786b000)
libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0xb7830000)
libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0xb770b000)
libdl.so.2 => /lib/libdl.so.2 (0xb7707000)
libc.so.6 => /lib/libc.so.6 (0xb75f3000)
libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0xb75ea000)
libXfixes.so.3 => /usr/X11R6/lib/libXfixes.so.3 (0xb75e5000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb751c000)
libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0xb7517000)
libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0xb750f000)
libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0xb750c000)
libXcursor.so.1 => /usr/X11R6/lib/libXcursor.so.1 (0xb7503000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb74f5000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb74d2000)
libz.so.1 => /usr/lib/libz.so.1 (0xb74bf000)
libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0xb74ad000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb74a5000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb748f000)
/lib/ld-linux.so.2 (0xb7f0c000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb746e000)

となります.

ちょっと不思議なのは,xfterm4 や mousepad といった Xfce に
付属(?)のアプリケーションでは,期待通りの挙動にならないのですが,
Xfce のメニューエディター等では変換候補がカーソルに隣接します.


--
荒木田 英禎

投稿者 xml-rpc : 2008年2月26日 16:33
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/70368
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。