Vine Linux バグトラッキングシステム - Vine Linux
課題の詳細を表示
0000564Vine Linux1 バグ公開2007-11-22 01:372007-12-13 18:41
anonymous 
packager 
不明 
完了不明 
4.1 
 
kdebase
0000564: KonsoleのPreedit入力の挙動が異常
Qt & KDEのVineのデフォルトの設定はOverTheSpotですが、
(LyXを除く)ほとんどのQt & KDEのプログラムはOnTheSpotで
問題なく動きます。というより、Vine 4.1のQtではOverTheSpot
では使いものにならない場合が多いのではないでしょうか。

という事で私はOnTheSpotで使用しているのですが、唯一これで
困るのはKonsoleの入力です。

現象:(skkinput or uim-skk or uim-canna + konsole (OnTheSpot))
1) 全角Greekと全角記号の多くが1 byte文字と判定されるため、入力が
乱れる。特にskkinputやuim-skkを使用している場合、最初に必ず
変換マークが付くので、これが1byte文字と判定され
入力行が乱れて使いものにならない。

2)変換文字列の強調、反転位置がずれる。
vimなどを使うとspace keyを押して変換開始状態にすると
無関係な部分が反転したり、ひどいときには、画面全体が
反転する。

解決策:
kdelibsのkonsole/konsoleに以下の添付patchを適用すると
以上の問題点は回避され、そこそこ使えるようになる。
ただし、変換行が2行にまたがる場合はオリジナルと同様で
強調位置が正しくありません(この部分を修正すると修正量が
多くなるので)。単純かつ範囲の限定されたpatchなので是非
対応して頂きたいと思います。

備考:
これはこのレポートとは関係ありませんが。OnTheSpotに
動作変更する場合にはまると悪いので。。。

Qtの動作を変える時、qtconfigを使うと思いますが(例えば、
OnTheSpotにする)、一度保存すると~/.qt/qtrcが出来ます
(clean installの状態ではこのファイルはありません)。
そのqtrcのlibrary path entryに実体の同じdirectoryが登録
されているはずです。
       /usr/lib/qt-3.5.5 == /usr/lib/qt3.
この状態を放っておくと、プログラムの起動時にwarningが出る
ようになり、さらに環境によってはprogramが異常終了するように
なります。ですので、qtrcのlibrary pathを確認して
重複をとりのぞき、そのあと、-r--r--r--にした方が良いと
思われます(一度qtrcが出来るとlibrary pathは勝手に追加
されるようになるので)。
たぶん、ld の部分にbugがあるのでしょうが追ってはいません。
設定されていません。
diff kdebase-3.5.8.diff (5,395) 2007-11-22 01:37
http://mantis.vinelinux.org/file_download.php?file_id=143&type=bug
diff konsole-3.5.8-1122.diff (10,335) 2007-11-22 09:43
http://mantis.vinelinux.org/file_download.php?file_id=144&type=bug
diff konsole-3.5.8-1123.diff (14,504) 2007-11-23 04:13
http://mantis.vinelinux.org/file_download.php?file_id=145&type=bug
diff konsole-3.5.8-1127.diff (19,229) 2007-11-28 02:08
http://mantis.vinelinux.org/file_download.php?file_id=146&type=bug
diff konsole-3.5.8-1130.diff (26,339) 2007-11-30 17:20
http://mantis.vinelinux.org/file_download.php?file_id=147&type=bug
diff konsole-3.5.8-final.diff (26,848) 2007-12-05 15:17
http://mantis.vinelinux.org/file_download.php?file_id=148&type=bug
diff konsole-3.5.8-final.diff (26,440) 2007-12-05 15:49
http://mantis.vinelinux.org/file_download.php?file_id=149&type=bug
課題の履歴
2007-11-22 01:37anonymous添付ファイル追加: kdebase-3.5.8.diff
2007-11-22 01:37anonymous新規課題
2007-11-22 01:53anonymousコメント追加: 0002712
2007-11-22 09:43anonymousコメント追加: 0002713
2007-11-22 09:43anonymous添付ファイル追加: konsole-3.5.8-1122.diff
2007-11-22 09:43anonymousコメント追加: 0002714
2007-11-23 04:13anonymous添付ファイル追加: konsole-3.5.8-1123.diff
2007-11-23 04:13anonymousコメント追加: 0002715
2007-11-28 02:08anonymous添付ファイル追加: konsole-3.5.8-1127.diff
2007-11-28 02:08anonymousコメント追加: 0002716
2007-11-30 17:20anonymous添付ファイル追加: konsole-3.5.8-1130.diff
2007-11-30 17:20anonymousコメント追加: 0002717
2007-12-04 17:45anonymousコメント追加: 0002718
2007-12-05 15:17anonymous添付ファイル追加: konsole-3.5.8-final.diff
2007-12-05 15:17anonymousコメント追加: 0002719
2007-12-05 15:49anonymous添付ファイル追加: konsole-3.5.8-final.diff
2007-12-05 15:49anonymousコメント追加: 0002720
2007-12-12 13:58anonymousコメント追加: 0002721
2007-12-13 12:31anonymousコメント追加: 0002722
2007-12-13 18:41kazutaka担当者 => packager
2007-12-13 18:41kazutaka状態新規 => 完了
2007-12-13 18:41kazutakaコメント追加: 0002723

コメント
(0002712)
anonymous   
2007-11-22 01:53   
>
> 解決策:
> kdelibsのkonsole/konsoleに以下の添付patchを適用すると

kdebaseの誤りです。
(0002713)
anonymous   
2007-11-22 09:43   
このバグの投稿者です。より良いパッチを添付します。
(0002714)
anonymous   
2007-11-22 09:43   
このバグの投稿者です。より良いパッチを添付します。
(0002715)
anonymous   
2007-11-23 04:13   
PatchですがAsian ambiguous charactersのうち罫線は半角にした方が
良いようです(もちろんどちらが正解という事はないのですが。本来は
選択できるべきですが、DEC graphic character setがunicodeにmapされ
ているKonsoleの構造上簡単ではないので。)
この部分を修正したpatchを添付します。ついでですが、複数行にまたがる
変換も正しく反転強調されるようにしておきました。
(0002716)
anonymous   
2007-11-28 02:08   
何度も投稿して申し訳ありません。

Patchですが、オリジナルの実装はあまりにad hocで
その方針を改善するより、やはり真面目に実装した方
が良いと思えて来ました。

オリジナルでは、preedit stringsをすべて端末clientに
渡しています。これは実装は楽ですが非常に問題が多いのです。
#この様な実装の例はgvimなどですが、gvimとconsoleでは話が
#大きく異ります(Konsoleのclientの挙動が仮定出来無いから)。

例えば cat として何か日本語を変換してみると、この方法では
駄目な事があからさまに判ります。

やはり、preedit stringsはcommitされるまで自前で処理するのが
結局のところ様々な問題を回避するために必要です。以下に添付
するpatchはこの部分を実装したものです。

動作確認は
vje, wnn7, uim, scim, skkinput
で確認してありますの。

既知の問題としては、
1) Preedit stringsを残したまま、tabを切り換えると
preedit stringsの挙動は保証されない
(確定してから切り替えましょう)
2) 連続確定入力(XIM_END -> XIM_START->XIM_CHANGEDが一挙に来る)で
preedit stringsの表示位置がずれる事がある。
これは、確定させると期待どおりになりますから無視しましょう。
3)Focus in/out で cursorの処理をしていない。無視してください。

もちろん、これらの問題はオリジナルにも存在しますし、オリジナル
よりは遥かに良くなっているはずです。Header filesを変更しないで
出来る変更はこの辺りで限界です。
(0002717)
anonymous   
2007-11-30 17:20   
レスポンスがないのに投稿を続けるのも何ですが。。
Patchを投稿した以上、最後まで責任があるので。

上記の既知の問題をfixしたpatchを添付します。
あと、オリジナルでは変換エリアがシアン系の
バックグラウンドになりますが、これは目が疲れるので
標準的な下線を引くものに変更しておきました。

Konsoleはkateやkdevelopでも使われるので結構
幸せになる人もいるのではないかと思うのですが。。
(0002718)
anonymous   
2007-12-04 17:45   
送っていただいたパッチを含むkdebaseパッケージをplus/4.0にputしました。
必要ならQTのデフォルトをOverTheSpot→OnTheSpotに戻したqtパッケージもputします。
(0002719)
anonymous   
2007-12-05 15:17   
> 送っていただいたパッチを含むkdebaseパッケージをplus/4.0にputしました。


対応ありがとうございます。ええと、もし許すならば1か所ほど変更した
次のpatchにして頂けないでしょうか? 修正内容は

unicode 0x2592を半角扱いにする。

unicode 0x2592は通常の日本語font fileで何もないところです。
konsoleはDEC graphic characterの網線squareを0x2592にmapしています
(これは明らかにkonsoleがだめだと思いますが、仕様なのでしかたありません)
この変更をしないと、alsamixerのbarやcursesのscrollbarが全角扱いになり
表示が乱れます。これはkonsoleがだめだめなのですが、現実にあわせたいと
思います。

ええと、DEC graphic charactersのうち、通常使われるものには対策を
施したのでこの種の変更はこれ以上ないと思います。ただ、半角diamondは
もともとそのようなフォントがallocate出来ないので全角diamondになります。

> 必要ならQTのデフォルトをOverTheSpot→OnTheSpotに戻したqtパッケージもputし
> ます。

これはvine projectのメンバーの方の判断によると思うのです。
たぶん、ほとんど全てのKDE appsはOnTheSpotの方が現状では幸せになります。
しかし、LyXはOnTheSpotでは入力出来ません。しかもLyXは--qt-inputstyle
optionを受け付けないのです。
ここは判断の迷うところではないでしょうか?

....

あと、ここに付け足すべきなのかわかりませんが。。
今回のpatch作成でずいぶん様々な日本語入力interfaceのeventのやりとりを
観察したのですが、Vine 付属のversionのscimはかなり問題があるのではない
でしょうか?次の4.2では新しいscimが採用されるようですが、次の点は
確認しておいた方が良いと思います。

1) scim(xim)はXIM_ENDのあと何をしなくともすぐにXIM_STARTを必ず送って来る。
 これはトラブルの元です。
2) Input focusをはずしてまたinput focusを得るとXIM_ENDなしにまたXIM_START
を送ってくることがある。これは論外です。
3) 変換中にcursor keyを動かしても文字単位の移動が出来ない。具体的には
cursorposが常に同じ値で返ってくる。これでは途中の挿入削除が出来ません。

私は日本語変換のfront endに思い入れは全くないのですが、vine付属の現状では
(市販品を除くとvje,wnn等)uimが一番真っ当なやりとりをしているように思えます。
(0002720)
anonymous   
2007-12-05 15:49   
すいません。前に添付したpatchは
妙なところが削れていました。
(0002721)
anonymous   
2007-12-12 13:58   
いただいたpatch(と別のセキュリティpatch)をあてたパッケージをplusにputしました。
(0002722)
anonymous   
2007-12-13 12:31   
> いただいたpatch(と別のセキュリティpatch)をあてたパッケージをplusにputし
> ました。

ありがとうございます。
これでこの報告もcloseとして下さい。

PS: もしKDEのversion up等でpatchがあたらなく
なったら一報下さい。対応致します。
(0002723)
kazutaka   
2007-12-13 18:41   
対応ありがとうございました。

完了とします。

ハラダ