[Anthy-dev 343] [uim] tutcode.scm property patch

Back to archive index

KIHARA Hideto deton****@m1*****
2004年 1月 2日 (金) 14:36:37 JST


tutcode.scmのproperty対応パッチを送ります。
uim-0.2.0でモード表示用メニューが削除されたので、
uim-helper-toolbar-gtkでモード表示をするためです。

ところで、uim-helper-toolbar-gtkのボタンを押して
モードを変えようとしても何も起こらないので、
uim-helper.cのsend massage(原文ママ)のコメントアウトを外して見たところ、
prop-listで渡した文字列が送られておらず、
"浅"のような文字列が送られていました。

どうもコールバック関数activate_event()が呼ばれた時点で
既に壊れているようなので、
以下のようにstrdup()するようにしてみたところ問題なさそうでした。
ただ、(glibやgtkは使ったことがないので、こういう場合の定石がわからず)、
どこでfree()すればいいか困ったので、
buttonにg_object_set_data()するようにしてみました。

diff -ur uim-0.2.2.orig/helper/helper-toolbar-common-gtk.c uim-0.2.2/helper/helper-toolbar-common-gtk.c
--- uim-0.2.2.orig/helper/helper-toolbar-common-gtk.c	Wed Dec 17 06:13:39 2003
+++ uim-0.2.2/helper/helper-toolbar-common-gtk.c	Fri Jan  2 13:16:16 2004
@@ -61,7 +61,7 @@
 helper_applet_prop_list_update(gchar **tmp)
 {
   GtkItemFactory *mode_item_fact = NULL; /* quiet gcc */
-  GtkWidget *button;
+  GtkWidget *button = NULL;
   int i = 0;
   gchar **tmp2 = NULL;
   gchar *charset = NULL;
@@ -110,11 +110,16 @@
 	  gtk_item_factory_set_translate_func(mode_item_fact, translate, NULL, NULL);
 	  gtk_widget_show(button);
 	} else if(strcmp("leaf", tmp2[0]) == 0) {
+	  gchar *message;
 	  GtkItemFactoryEntry entry = {NULL, NULL, G_CALLBACK(activate_event), 0, ""};
 	  path = g_string_new("");
 	  g_string_printf(path, "/%s", tmp2[2]);
 	  entry.path = path->str;
-	  gtk_item_factory_create_item ( mode_item_fact, &entry, tmp2[4], 1);
+	  /* コールバックされた側では壊れてるようなのでstrdup()する */
+	  message = g_strdup(tmp2[4]);
+	  /* messageがfree()されるようにするため */
+	  g_object_set_data_full(G_OBJECT(button), message, message, g_free);
+	  gtk_item_factory_create_item ( mode_item_fact, &entry, message, 1);
 	  g_string_free(path, TRUE);
 	}
 	g_strfreev(tmp2);

-- 
木原 英人 / KIHARA, Hideto / deton****@m1*****
http://www1.interq.or.jp/~deton/
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: uim-0.2.2-tutcode-prop.patch.gz
型:         application/x-gunzip
サイズ:     1355 バイト
説明:       無し
Download 


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