前言
QNX系统下界面是以screen为单位,纵向分层显示。工作中遇到screenA的touch事件被screenB截获,导致screenA监测release事件一直未释放而无响应的问题。考虑在出现问题的时候,模拟屏幕点击release事件,可激活screenA重新接收新的touch事件。
1、初始化
1.1 上下文
screen_context_t screen_context = 0;
screen_create_context(&screen_context,SCREEN_APPLICATION_CONTEXT | SCREEN_INPUT_PROVIDER_CONTEXT);
1.2 显示设备
screen_display_t displaylist[5];
screen_get_context_property_pv(screen_context, SCREEN_PROPERTY_DISPLAYS, (void **)&displaylist);
m_screendisplay = displaylist[0];
1.3 创建屏幕事件句柄
screen_event_t m_screenevent;
screen_create_event(&m_screenevent);
1.4 模拟触摸的位置点
typedef struct {
int action;
int touchid;
uint32_t x;
uint32_t y;
uint32_t width;
uint32_t height;
}touch_para_t;
touch_para_t points[3];
points[0]