| ||||||||
adm | Find | login register |
各位先進好, 最近在使用 emesene 的開發版本時會出現這個情況: 輸入完後按下 enter, 字不會出現在 emesene 的 textbox; 但如果輸入完是使用切換輸入法, 則文字還是會送到 textbox 中. 在下抓了一下問題點是在這隻程式, 不過由於對 gtk 不熟, 在加上外國朋友(開發者)們不用輸入法所以也不會遇到這問題. 想說來這邊跟各位請益一下有什麼比較好的作法. 出問題的程式跟修改的部份如下: https://github.com/emesene/emesene/blob/f53d1b3a83a385f8200975ae906948a26b1b5256/emesene/gui/gtkui/TextBox.py
比較不解的是, connect 在目前也可以使用, 但是為什麼為造成這樣的影響. 希望各位先進如果有相關經驗可以幫忙解答一下. 我有 fork 一份並且利用他們在這次修改的時候有一個檢查 gtk 版本的函式做了一個可以使用的修改, 位置如下: https://github.com/moneycat/emesene/commit/cf9bbd004506ea116718a6429aa40344f08dbd42 | |||||||||||||||||||||||
gtk_im_context_filter_keypresshttp://developer.gnome.org/gtk/2.24/GtkIMContext.html#gtk-im-context-filter-keypress 用 gtk_im_context_filter_keypress 送給 gcin 處理按鍵,如果 return TRUE,代表 gcin 已經吃了這個 key,不要處理。 問題可能出在 Enter key 沒有這樣處理,這樣就會出問題 | |||||||||||||||||||||||
| |||||||||||||||||||||||
感謝 eliu 前輩的指點, 加入這個函式之後看起來已經正常不會被吃掉 event 了 就等 upstream 看有沒有其他意見要修正, 感謝 |
| ||||||||
adm | Find | login register |