Takuro Ashie
ashie****@homa*****
2004年 12月 7日 (火) 10:18:35 JST
足永です。 On Mon, 06 Dec 2004 22:17:44 +0900 Hiroyuki Komatsu <komat****@taiya*****> wrote: > どうも uim 0.4.5 では、Anthy から PRIME へと IME を切り替えたタイミング > では uim_cand_win_gtk_init が呼ばれないようです。そのため Anthy から > PRIME に切り替えても、candidate-window-position の値が "caret" のままに > なっています。修正していただけると助かります。 以前は Gtk+ の IM 切替え機構を使っていたのでIM 切替えのタイミングで uim_cand_win_gtk_init が呼ばれていましたが、im-switcher を使うようになって 候補ウィンドウをリセットしなくなったということですね。 ad-hocですが、以下で直ると思います。 が、設定はgtk-im-uim.cで読むように直そうかと思います。 --- uim-cand-win-gtk.c.bak 2004-12-07 10:13:09.311234968 +0900 +++ uim-cand-win-gtk.c 2004-12-07 10:13:31.415874552 +0900 @@ -141,15 +141,6 @@ cwin->cursor.x = cwin->cursor.y = 0; cwin->cursor.width = cwin->cursor.height = 0; - leftp = uim_symbol_value_str("candidate-window-position"); - if (leftp && !strcmp(leftp, "left")) { - cwin->left = TRUE; - } else { - cwin->left = FALSE; - } - g_free(leftp); - - /* build window */ vbox = gtk_vbox_new(FALSE, 0); @@ -319,6 +310,14 @@ g_return_if_fail(UIM_IS_CAND_WIN_GTK(cwin)); + leftp = uim_symbol_value_str("candidate-window-position"); + if (leftp && !strcmp(leftp, "left")) { + cwin->left = TRUE; + } else { + cwin->left = FALSE; + } + g_free(leftp); + if (cwin->stores == NULL) cwin->stores = g_ptr_array_new();