[Scim-imengine-dev 1489] 変換候補数が消える問題

Back to archive index

Akira TAGOH at****@gclab*****
2007年 3月 13日 (火) 22:06:36 JST


たごうです。

フォーカスの移動で、候補ウィンドウに表示される変換候補数が消
えるという報告を頂いたので、ご報告します。

頂いた際のバージョンは1.2.0なんですが、1.2.2でも再現できまし
た。手順はxtermを起動して何か入力、候補ウィンドウを出した状
態でウィンドウを移動、とかすると消えるようです。

ちなみに、GTK+アプリをはじめfocus outでresetしてしまうような
アプリではこの問題は発生しません。

報告者からパッチも頂いたので添付しておきます。


全然関係ない話ですが、ホームページが荒されているようです。
先日FedoraのMerge ReviewでReviewerの方から教えていただきまし
た。

--
Akira TAGOH
-------------- next part --------------
diff -urN scim-anthy-1.2.0.orig/src/scim_anthy_imengine.cpp scim-anthy-1.2.0/src/scim_anthy_imengine.cpp
--- scim-anthy-1.2.0.orig/src/scim_anthy_imengine.cpp	2006-07-26 10:55:32.000000000 +0900
+++ scim-anthy-1.2.0/src/scim_anthy_imengine.cpp	2007-01-20 00:51:09.000000000 +0900
@@ -424,8 +424,6 @@
 {
     SCIM_DEBUG_IMENGINE(2) << "focus_in.\n";

-    hide_aux_string ();
-
     if (m_preedit_string_visible) {
         set_preedition ();
         show_preedit_string ();
@@ -433,10 +431,36 @@
         hide_preedit_string ();
     }

+    /*
+     * The original code just called hide_aux_string() to hide
+     * aux string (number of candidates) when an IC get be focused.
+     * When the IC get focus at the first time, anthy input method
+     * does not want to show up the aux window, since 0 candidates
+     * are available at that time.
+     * If I just stop to call hide_aux_string() here, meaning less
+     * aux string like "Candidates (1/0)" will be displayed.
+     * Therefore, I checked both m_show_candidates_label flag and
+     * number_of_candidates() then decide to display aux string or
+     * not.
+     * Plus, aux string should not display unless candidates (lookup_table)
+     * is displayed.
+     */
     if (m_lookup_table_visible && is_selecting_candidates ()) {
         update_lookup_table (m_lookup_table);
+        if (m_factory->m_show_candidates_label &&
+            (m_lookup_table.number_of_candidates() > 0) ) {
+            char buf[256];
+            sprintf (buf, _("Candidates (%d/%d)"),
+                     m_lookup_table.get_cursor_pos () + 1,
+                     m_lookup_table.number_of_candidates ());
+            update_aux_string (utf8_mbstowcs (buf));
+            show_aux_string ();
+        } else {
+            hide_aux_string ();
+        }
         show_lookup_table ();
     } else {
+        hide_aux_string ();
         hide_lookup_table ();
     }

-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: 無し
型:         application/pgp-signature
サイズ:     189 バイト
説明:       無し
다운로드 


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