[Kazehakase-devel 1910] Re: フォントとページ内検索についてのお願い

アーカイブの一覧に戻る

Jun Mukai mukai****@jmuk*****
2005年 2月 8日 (火) 21:21:26 JST


向井です。

> 日本語入力をオンにしたままだと赤バックになるようです。
あーなるほど。
scim-skk がなんで大丈夫だったのかはよくわからないのですが、 uim や 
scim-anthy で試してみたところ、確かに再現しました。 uim-skk だと l や 
Ctrl-j などのモード変更キーを押すだけで白に戻りますね。


ちょっと見ていて気付いたのですが、 Enter の入力は cb_find_keyword の方
を呼ぶことになります。ここから先の挙動はたぶん変換エンジンに依存すると
思うのですが、変換エンジンの側で key-release-event を補足していて風博
士側には渡されないようになっており、 cb_find_key_release が呼ばれてい
なかったのが原因ではないかと思います。

なので、 cb_find_keyword の方にも同種の修正を施してみて、scim-anthy、
uim-skk、uim-anthy(ただしscim-uim経由)でテストしてみたところ、正しく
「全部空白にして Enter」すると背景が白に戻るという動作になりました。


ついでに、過去の修正の場合、文字列が空白の場合にも検索をしてしまうのが
ちょっとださいと思ったので、検索前に文字列のチェックをするように変更し
てみました。

パッチを添付します。


ところで見つからなかった時の色ですが、確かに真っ赤なのはちょっとどぎつ
いかな、と思います、私も。

-------------- next part --------------
--- kz-window.c.orig	2005-02-08 21:01:31.165611392 +0900
+++ kz-window.c	2005-02-08 20:57:44.120127552 +0900
@@ -2450,14 +2450,17 @@
 	const gchar *text = gtk_entry_get_text(GTK_ENTRY(widget));
 	gboolean back = gtk_toggle_button_get_active(toggle);
 
-	kz->priv->did_find = kz_embed_find(embed, text, back);
-	if(text && *text)
+	if (!text || !(*text))
 	{
-		if(kz->priv->did_find)
-			search_found(widget, kz);
-		else
-			search_not_found(widget, kz);
+		search_found(widget, kz);
+		return;
 	}
+
+	kz->priv->did_find = kz_embed_find(embed, text, back);
+	if(kz->priv->did_find)
+		search_found(widget, kz);
+	else
+		search_not_found(widget, kz);
 }
 
 static gboolean
@@ -2472,6 +2475,11 @@
 	embed = KZ_EMBED(KZ_WINDOW_CURRENT_PAGE(kz));
 	toggle = GTK_TOGGLE_BUTTON(kz->find_direction);
 	text = gtk_entry_get_text(GTK_ENTRY(widget));
+	if (!text || !(*text))
+	{
+		search_found(widget,kz);
+		return FALSE;
+	}
 
 	if (event->keyval == GDK_Return || event->keyval == GDK_ISO_Enter)
 	{
@@ -2494,17 +2502,10 @@
 		}
 	}
 
-	if(text && *text)
-	{
-		if(kz->priv->did_find)
-			search_found(widget, kz);
-		else
-			search_not_found(widget, kz);
-	}
+	if(kz->priv->did_find)
+		search_found(widget, kz);
 	else
-	{
-		search_found(widget,kz);
-	}
+		search_not_found(widget, kz);
 	return FALSE;
 }
 


Kazehakase-devel メーリングリストの案内
アーカイブの一覧に戻る