fix destroy an application issue when there is no another application in the panel.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1312 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
parent
71421510fc
commit
62c1662366
|
@ -79,12 +79,14 @@ void rtgui_server_destroy_application(struct rtgui_event_panel_detach* event)
|
|||
{
|
||||
/* get next thread and active it */
|
||||
rt_thread_t tid = rtgui_panel_get_active_thread(panel);
|
||||
|
||||
/* let this thread repaint */
|
||||
struct rtgui_event_paint epaint;
|
||||
RTGUI_EVENT_PAINT_INIT(&epaint);
|
||||
epaint.wid = RT_NULL;
|
||||
rtgui_thread_send(tid, (struct rtgui_event*)&epaint, sizeof(epaint));
|
||||
if (tid != RT_NULL)
|
||||
{
|
||||
/* let this thread repaint */
|
||||
struct rtgui_event_paint epaint;
|
||||
RTGUI_EVENT_PAINT_INIT(&epaint);
|
||||
epaint.wid = RT_NULL;
|
||||
rtgui_thread_send(tid, (struct rtgui_event*)&epaint, sizeof(epaint));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -110,6 +110,8 @@ rt_bool_t rtgui_container_event_handler(rtgui_widget_t* widget, rtgui_event_t* e
|
|||
switch (event->type)
|
||||
{
|
||||
case RTGUI_EVENT_PAINT:
|
||||
case RTGUI_EVENT_COMMAND:
|
||||
case RTGUI_EVENT_RESIZE:
|
||||
rtgui_container_dispatch_event(container, event);
|
||||
break;
|
||||
|
||||
|
@ -125,52 +127,13 @@ rt_bool_t rtgui_container_event_handler(rtgui_widget_t* widget, rtgui_event_t* e
|
|||
|
||||
case RTGUI_EVENT_MOUSE_BUTTON:
|
||||
/* handle in child widget */
|
||||
if (rtgui_container_dispatch_mouse_event(container,
|
||||
(struct rtgui_event_mouse*)event) == RT_FALSE)
|
||||
{
|
||||
}
|
||||
else return RT_TRUE;
|
||||
return rtgui_container_dispatch_mouse_event(container,
|
||||
(struct rtgui_event_mouse*)event);
|
||||
break;
|
||||
|
||||
case RTGUI_EVENT_MOUSE_MOTION:
|
||||
if (rtgui_container_dispatch_mouse_event(container,
|
||||
(struct rtgui_event_mouse*)event) == RT_FALSE)
|
||||
{
|
||||
#ifndef RTGUI_USING_SMALL_SIZE
|
||||
#if 0
|
||||
/* handle event in current widget */
|
||||
if (widget->on_mousemotion != RT_NULL)
|
||||
{
|
||||
return widget->on_mousemotion(widget, event);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
else return RT_TRUE;
|
||||
break;
|
||||
|
||||
case RTGUI_EVENT_COMMAND:
|
||||
if (rtgui_container_dispatch_event(container, event) == RT_FALSE)
|
||||
{
|
||||
#ifndef RTGUI_USING_SMALL_SIZE
|
||||
if (widget->on_command != RT_NULL)
|
||||
{
|
||||
return widget->on_command(widget, event);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else return RT_TRUE;
|
||||
break;
|
||||
|
||||
case RTGUI_EVENT_RESIZE:
|
||||
if (rtgui_container_dispatch_event(container, event) == RT_FALSE)
|
||||
{
|
||||
#ifndef RTGUI_USING_SMALL_SIZE
|
||||
if (widget->on_size != RT_NULL)
|
||||
return widget->on_size(widget, event);
|
||||
#endif
|
||||
}
|
||||
else return RT_TRUE;
|
||||
return rtgui_container_dispatch_mouse_event(container,
|
||||
(struct rtgui_event_mouse*)event);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
Loading…
Reference in New Issue