Kouhei Sutou
kou****@cozmi*****
2006年 1月 29日 (日) 15:31:37 JST
須藤です. In <cca14****@mail*****> "[Anthy-dev 2813] Re: uim-gtk" on Sat, 28 Jan 2006 13:54:51 +0900, Etsushi Kato <ek.ka****@gmail*****> wrote: > 多分 r3012 で直ったと思います。mozilla は、input の 場所が変っても、 > focus out を呼んでくれない場合があるのが問題だったみたいです。 全体のソースも読んでいなく,実際に動かしてもいないので変なこ とを言っているかもしれませんが,コミットメールのパッチでおか しそうなところを見付けました. In <20060****@gabe*****> "[uim-commit] r3012 - trunk/gtk" on Fri, 27 Jan 2006 20:48:03 -0800 (PST), ekato****@freed***** wrote: > Author: ekato > Date: 2006-01-27 20:47:59 -0800 (Fri, 27 Jan 2006) > New Revision: 3012 > > Log: > * gtk/gtk-im-uim.c : Again, use toplevel key event by default. > (im_uim_focus_in) : Disconnect signal before connecting to new > one. > Modified: trunk/gtk/gtk-im-uim.c > =================================================================== > --- trunk/gtk/gtk-im-uim.c 2006-01-28 04:13:23 UTC (rev 3011) > +++ trunk/gtk/gtk-im-uim.c 2006-01-28 04:47:59 UTC (rev 3012) > @@ -936,6 +936,13 @@ > snooper_installed = TRUE; > } > #elif IM_UIM_USE_TOPLEVEL > + if (cur_toplevel) { > + if (cur_key_press_handler_id) > + g_signal_handler_disconnect(cur_toplevel, cur_key_press_handler_id); > + if (cur_key_press_handler_id) ↑はもしかしてcur_key_release_handler_idのtypoではありませんか? ^^^^^^^ cur_key_press_handler_idが設定されているときは cur_key_release_handler_idは確実に設定されているとかなら別に これでよい(かもしれない)と思ったのですが,気になったもの で... > + g_signal_handler_disconnect(cur_toplevel, cur_key_release_handler_id); > + } > + > toplevel = gtk_widget_get_toplevel(uic->widget); > cur_toplevel = toplevel;