微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > mt2503multitap状态下,长按数字键不循环候选字直接显示数字

mt2503multitap状态下,长按数字键不循环候选字直接显示数字

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
信息编辑界面,在multitap状态下,输入字符的时候,如果我们常按数字键,目前是循环功能,希望改为长按时候选择数字。如:现在长按2时,目
前功能为A-B-C-2-一直循环。希望改为长按0-9时候,直接输入0-9,比如长按2时,直接选择为2,长按1时,直接选择1。
[SOLUTION]
在文件imc_key.c中定位函数MMI_imc_key_multitap_alphabetic_down_handler,在case MMI_IMC_STATE_MULTITAP按照以下方式修改代码:
/* get new candidate */
//修改开始--约3274行
if (g_imc_key.key_info.curr_mmi_key_type == KEY_REPEAT)
{
UI_string_type cand = mmi_imc_key_extract_candidate_by_index(g_imc_key.global_data_ptr->cand_select);
while (cand != NULL && g_imc_key.global_data_ptr->cand_select < g_imc_key.global_data_ptr->cand_count &&
(((U16)*cand) < 0X30|| ((U16)*cand) > 0x39))
{
mmi_imc_key_get_multitap_next_candidate(key_code);
cand = mmi_imc_key_extract_candidate_by_index(g_imc_key.global_data_ptr->cand_select);
}
}
else
{
mmi_imc_key_get_multitap_next_candidate(key_code); //原先代码只有这一句
}
//修改结束
/* replace the old candidate with the new one. */
mmi_imc_key_insert_multitap_char_by_index(g_imc_key.global_data_ptr->cand_select);
mmi_imc_redraw_screen_by_state();
该方法主要是在key type为KEY_REPEAT且key code为数字的情况下,直接遍历multitap字符,取数字对应的index

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top