パスワードを忘れた? アカウント作成
625231 journal

kzkの日記: KDE on qt-immodule patch with quiminputcontextplugin 3

日記 by kzk

タイトル長ぇ。
という訳でDaisukeパッチを適応したqt上でKDEをビルドしてみた。
世界で3-4人目かな(わら

最初「KDEアプリ上で入力出来ねー!やう゛ぇー!」とか思ったのだが、puntiumさんに解決法を教えて貰った。
一行足してリビルドしたら入力できるようになりました。

入力する度に俺のコードが動いてるんだと思うと結構快感だったりする。
候補ウィンドウもQtで実装されている上にKDE/Qtと同じフォントが使われてて見た目の違和感が少ない。
なんか凄く良いんですけど。。。
自分で書いといて感動するのもなんだけど、まぢにいいです。。。

「#kde-jp @irc.freenode.net」で談義中

--------

このバグはどうやらuim-primeの問題だった模様(uim-anthyだと発生しない)
どれのバグだろうか?
  * qt-immodule for uim
  * uim
  * prime

でもuim-anthyでもごく稀に発生する気がしてならないのは気のせいでは無いです(滝汗

--------

QUimInputContext::pushback_cbにおいて

+if(!strcmp(str,""))
-if(!strcmp(str,"") || !(attr & (UPeAttr_Cursor | UPeAttr_Separator)))

とするとうまく行くっぽい。
てか後の条件は何を除いてて、それを除くと何がまずいのかが未だ掴めない。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by YamaKenZ (12605) on 2004年04月25日 17時33分 (#537980)
    そこの論理式は元々私が書いたもののような気がするのでgtk-im-uim.cを見てみましたが、こっちは以下のようなコードになってます。Qtの方も||を&&にしないといかんのでは(論理反転ミス?)。

        if(!strcmp(str,"")
              && !(attr & (UPreeditAttr_Cursor | UPreeditAttr_Separator)))
            return;

    意味はカーソルでも文節セパレータでもないのに空な文字列をrejectするというものです。どっからそんな文字列が渡ってくるのか忘れましたが、rejectしておかないと文節セパレータだけが連続して|こんな|||感じに|表示|されちゃう|場合があるので入れました。

    やっぱ何を意図した式なのか意味的な名前を付けないと他人には伝わらないですね。

    if (plain_null_str) return;

    とか?
    • by kzk (16011) on 2004年04月25日 20時35分 (#537997) 日記
      レスどうもです。
      ちょっとYamakenさんがレスくれたら嬉しいなーと期待しました(^^;

      色々いぢっている過程で"&&"が"||"になってしまっていた様です。
      ただ、"||"でも"&&"でも動かないんですけどね。。。

      このレスは if(!strcmp(str, "")) の状態で入力していますが、|こんな||風に||表示|されるような事は起こっていません。
      この状態でしばらく様子を見てみようかと思っています。
      しかしその様な空文字列がどこから送られて来るんでしょうかねぇ。。。

      意味的な名前というと、先日は”rk"というのが何の略か?という質問をyusukeさんにしてしまいました。
      実は"pushback"っていう語の意味合いも良く分かっていなかったりします(^^;
      こういうのはどんどん指摘していった方が後から来る人の為には良かったりするんでしょうかね?
      親コメント
      • by YamaKenZ (12605) on 2004年04月25日 22時23分 (#538042)
        ありゃ、ダメですか。他の部分での処理がgtkと違うのかもしれませんね。
        明日になったらちょっと見てみます。
        今日はザウルスいじりの日と勝手に決めてるんで。

        ||が発生する条件はそのコードを入れた時点では明確に把握してたはずなんですけど、これもコメント残しとかないと忘れちゃいますね。

        pushbackはSTLのpush_backから取ったんじゃないかと思うんですけど、真実はyusukeさんのみぞ知るです。名前の由来なんかはソース中にどんどんコメントとして入れちゃった方がいいんじゃないですかね。
        親コメント
typodupeerror

※ただしPHPを除く -- あるAdmin

読み込み中...