Hatena::Groupchinese

妄言砂漠

2007-05-17

[] 行番号  行番号 - 妄言砂漠 を含むブックマーク はてなブックマーク -  行番号 - 妄言砂漠

f:id:Ctrans:20070517133853p:image

先日の続き

自作ツールのテキスト表示部分にCtextを使うつもりだったのですが、いくつか具合の悪いところがあったので、ちょっと手を入れて新しいパッケージを作成。

元のCtextで問題だったのは次の3点。

  1. IMEをオンにして日本語を入力すると、何かの拍子にインライン入力の候補文字列が二重に表示される(テレビのゴーストみたいな感じ)。原因はよく分からないけれど、Textウィジェット単体では起きない問題。色々試した結果、行番号を表示するウィジェットをTextからCanvasに変えたら問題なくなった。
  2. Ctextでは、行番号の更新にTextウィジェットのフォントのheightを利用しているので、Textウィジェットでオプションのspacing1、2(行の間隔)を指定していたり、Textウィジェット内で複数のフォントを利用していると*1表示がおかしくなる。これはTextウィジェットのdlineinfoを利用するかたちに変更した。
  3. 行番号がらみでさらに1点。行の折り返しを有効にして、小さいサイズでテキストを表示させると行番号と表示テキストの対応が崩れる。Ctextでは行番号更新時の処理がちょっとおかしかったので、ループを1つにまとめたりして修正。ついでに行番号をクリックした時の処理も一部変更。

[] 8.5a6  8.5a6 - 妄言砂漠 を含むブックマーク はてなブックマーク -  8.5a6 - 妄言砂漠

bitWalk build の Tcl/Tk 8.5 a6をインストールしました。8.5からTextウィジェットが色々改良されているので楽しみにしていたのですが、smooth scrollingがもうひとつよろしくない。行の折り返し(-wrap)が有効になっている状況下で、1行が長いテキスト*2を表示させるとスクロールがカクンカクンする。英語のテキストなら問題ないのですが、日本語や中国語はかなり悲しい状況。スクロールバーの不具合は直ったみたいですけど、これはちょっといただけない。報告したいけど英語は苦手だなぁ……。

関連:TIP #155: Fix Some of the Text Widget's Limitations

*1:例えば簡体字と日本語とピンインにそれぞれ違うフォントを使う場合など。

*2:例えば太宰治の老ハイデルベルヒなど。

トラックバック - http://chinese.g.hatena.ne.jp/Ctrans/20070517