summaryrefslogtreecommitdiff
path: root/components/gui/src/server.c
diff options
context:
space:
mode:
authoryangfasheng <[email protected]>2018-01-19 10:20:02 +0800
committeryangfasheng <[email protected]>2018-01-19 10:20:02 +0800
commitceefcb9732e9df0d71dfa12d913addb2f90c0aa3 (patch)
tree213ff9e5de916b36ad7c9a09aef7d3e3753af1e4 /components/gui/src/server.c
parent973a5fb885cb7edc55d5aed6ce2445cb457d7f6c (diff)
gui 引擎优化;
Diffstat (limited to 'components/gui/src/server.c')
-rw-r--r--components/gui/src/server.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/components/gui/src/server.c b/components/gui/src/server.c
index 75e7879aa4..6072bba33e 100644
--- a/components/gui/src/server.c
+++ b/components/gui/src/server.c
@@ -115,6 +115,7 @@ void rtgui_server_handle_mouse_btn(struct rtgui_event_mouse *event)
return;
event->wid = wnd->wid;
+ event->win_acti_cnt = rtgui_app_get_win_acti_cnt();
/* only raise window if the button is pressed down */
if (event->button & RTGUI_MOUSE_BUTTON_DOWN &&
@@ -124,9 +125,10 @@ void rtgui_server_handle_mouse_btn(struct rtgui_event_mouse *event)
}
/* send mouse event to thread */
- rtgui_send(wnd->app,
- (struct rtgui_event *)event,
- sizeof(struct rtgui_event_mouse));
+ while (rtgui_send(wnd->app, (struct rtgui_event *)event, sizeof(struct rtgui_event_mouse)) != RT_EOK)
+ {
+ rt_thread_delay(RT_TICK_PER_SECOND / 50);
+ }
}
void rtgui_server_handle_mouse_motion(struct rtgui_event_mouse *event)
@@ -152,6 +154,8 @@ void rtgui_server_handle_mouse_motion(struct rtgui_event_mouse *event)
if (win)
{
event->wid = win->wid;
+ event->win_acti_cnt = rtgui_app_get_win_acti_cnt();
+
rtgui_send(win->wid->app, &(event->parent), sizeof(*event));
}
@@ -175,6 +179,7 @@ void rtgui_server_handle_kbd(struct rtgui_event_kbd *event)
/* send to focus window */
event->wid = wnd->wid;
+ event->win_acti_cnt = rtgui_app_get_win_acti_cnt();
/* send keyboard event to thread */
rtgui_send(wnd->app, (struct rtgui_event *)event, sizeof(struct rtgui_event_kbd));