|
sylpheed-jp:3302
From: Hiroyuki Yamamoto <Hiroyuki Yamamoto <hiro-y@xxxxxxxxxx>> 山本です。 On Wed, 1 Feb 2006 23:35:26 +0900 Hiroyuki Yamamoto <hiro-y@xxxxxxxxxx> wrote: > 実はクイックサーチのエントリにはショートカットキー対策として特別な処理 > を入れています(何もしなければ確実にメニューにキー入力を取られます)。 > > (具体的には、メニューがショートカットキーとして認識する前にトップレベ > ルウィンドウでキー入力を受け取り、モディファイアキーのないショートカッ > トキーと一致した場合は、エントリに自前で文字を入力します。そうでなかっ > た場合はイベントをスルーします。) > > uim+Anthy, SCIM+Anthy, Win32のimimeでは問題なかったのですが、IMによっ > ては問題が起こるのかもしれません。IMをオフにしている場合でも起こるのは > 謎ですが。 > > ちょっといろいろいじってみたいと思います。 こちらでもXIM(uim-xim)で再現しました。ということで修正してみました。 svn trunkか、または以下のパッチを試してみてください。 ちなみに、ショートカットキーの検索と自前で文字を入力するのをやめ、単純に イベントを伝播させるように変更しています。 Index: src/mainwindow.c =================================================================== --- src/mainwindow.c (revision 958) +++ src/mainwindow.c (working copy) @@ -2689,39 +2689,16 @@ if (!mainwin) return FALSE; - if (GTK_WIDGET_HAS_FOCUS(mainwin->summaryview->search_entry)) { - /* g_print("keyval: %d, state: %d\n", - event->keyval, event->state); */ - if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) - return FALSE; + if (!GTK_WIDGET_HAS_FOCUS(mainwin->summaryview->search_entry)) + return FALSE; - if (gtk_accel_group_query(mainwin->menu_factory->accel_group, - event->keyval, - event->state & ~GDK_LOCK_MASK, - NULL) != NULL) { - gunichar ch; + /* g_print("keyval: %d, state: %d\n", event->keyval, event->state); */ + if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) + return FALSE; - ch = gdk_keyval_to_unicode(event->keyval); - if (ch != 0) { - gchar str[7]; - gint len; - gint pos; - GtkEditable *editable; + gtk_window_propagate_key_event(GTK_WINDOW(widget), event); - editable = GTK_EDITABLE - (mainwin->summaryview->search_entry); - len = g_unichar_to_utf8(ch, str); - gtk_editable_delete_selection(editable); - pos = gtk_editable_get_position(editable); - gtk_editable_insert_text - (editable, str, len, &pos); - gtk_editable_set_position(editable, pos); - return TRUE; - } - } - } - - return FALSE; + return TRUE; } static gint main_window_close_cb(GtkWidget *widget, GdkEventAny *event, -- Hiroyuki Yamamoto <hiro-y@xxxxxxxxxx> 3299 2006-02-01 20:42 [SHITAMORI Akira <shi] クイックサーチ?で日本語の入力がうまくできません 3300 2006-02-01 22:12 ┗[ToshiOkada <tokada@x] 3301 2006-02-01 23:35 ┗[Hiroyuki Yamamoto <h] -> 3302 2006-02-02 11:36 ┗[Hiroyuki Yamamoto <h] 3303 2006-02-02 19:09 ┣[SHITAMORI Akira <shi] 3304 2006-02-03 01:02 ┗[ToshiOkada <tokada@x] |