IME 進度(1464)

從台北回到埔里,終於有 nb 可以開始修 bug 改程式 :)

先修掉了幾個比較嚴重的 bug 像是使用 OVIMGeneric 的輸入法在應數模示下空白鍵會跑出 processed 等等。

之後就是開始快樂的 refactoring ,AVDictionary 變成 singleton ,同一個 process 裡面只會有一個實體,並從原本的 autoflush 模式改為預設不要 autoflush ,應該可以增加不少效能。

還把 AVLoader.cpp 徹底的整理了一下,現在裡面的東西已經少了大約一半,不屬於 Loader 的 code 大多已經移出去,變成 AVKeyCode、AVBuffer、AVCandidate,其中 AVKeyCode 還可以再跟 IME.cpp 裡面的東西整合,應該會更清楚。

另外一個重大的改變是把 UI 的控制包裝於 AVDisplayServer 中,這樣 Loader 可以直接對 Display 下指示,而 IME 只要實做 AVDisplayServer 的介面即可… 以這樣的架構,把 DisplayServer 的層次提高,AVService 也可以利用 AVDisplayServer 來作 notify area 的顯示。

AVLoader 裡面還有許多 extern "C" {} 的 wrapper 介面,這是因為之前是以分開的 dll 來連結 Loader 與 IME ,現在是直接 compile 在一起,應該可以考慮包裹成 class。

還有好多可以改的地方 XD