diff --git a/scim-wnn/src/scim_wnn_imengine.cpp b/scim-wnn/src/scim_wnn_imengine.cpp index 6582a16..222ff1d 100644 --- a/scim-wnn/src/scim_wnn_imengine.cpp +++ b/scim-wnn/src/scim_wnn_imengine.cpp @@ -254,9 +254,10 @@ update_preedit_caret(m_rk.getPos()); return(true); } - if (key.code == SCIM_KEY_space) { - m_convList.pos ++; + if ((key.code == SCIM_KEY_space) || (key.code == SCIM_KEY_Down) || (key.code == SCIM_KEY_Up)) { + key.code == SCIM_KEY_Up ? m_convList.pos --: m_convList.pos ++; if (m_convList.pos >= m_convList.count) m_convList.pos = 0; + else if (m_convList.pos < 0) m_convList.pos = m_convList.count - 1; wnn.select(m_convList.pos); update_preedit_string(wnn.getText(),wnn.getAttributeList());