diff --git a/components/rtgui/common/dc_hw.c b/components/rtgui/common/dc_hw.c index 013a07d377c0cceb49bcd3f00aec8cab8e4e07cf..722ff64c57610eeda321cdd8af01efa4a6959540 100644 --- a/components/rtgui/common/dc_hw.c +++ b/components/rtgui/common/dc_hw.c @@ -158,7 +158,7 @@ static rt_bool_t rtgui_dc_hw_fini(struct rtgui_dc* dc) rtgui_toplevel_t* top = RTGUI_TOPLEVEL(hw->owner->toplevel); top->drawing --; - if (top->drawing == 0) + if ((top->drawing == 0) && (hw->visible == RT_TRUE)) { #ifdef __WIN32__ #ifdef RTGUI_USING_MOUSE_CURSOR @@ -186,7 +186,7 @@ static rt_bool_t rtgui_dc_hw_fini(struct rtgui_dc* dc) rtgui_toplevel_t* top = RTGUI_TOPLEVEL(hw->owner->toplevel); top->drawing --; - if (top->drawing == 0) + if ((top->drawing == 0) && (hw->visible == RT_TRUE)) { #ifdef __WIN32__ #ifdef RTGUI_USING_MOUSE_CURSOR @@ -208,7 +208,6 @@ static rt_bool_t rtgui_dc_hw_fini(struct rtgui_dc* dc) } } - return RT_TRUE; } diff --git a/components/rtgui/common/rtgui_xml.c b/components/rtgui/common/rtgui_xml.c index 66315eb8cf52c0bee07637998e610bf6e999b341..eecb197d59889d1fd93377609da68245b92ac2c8 100644 --- a/components/rtgui/common/rtgui_xml.c +++ b/components/rtgui/common/rtgui_xml.c @@ -1,4 +1,5 @@ #include +#include /* Internal states that the parser can be in at any given time. */ enum { @@ -173,22 +174,16 @@ const char* rtgui_xml_event_str(rt_uint8_t event) { case EVENT_START: return "start tag"; - break; case EVENT_END: return "end tag"; - break; case EVENT_TEXT: return "text"; - break; case EVENT_NAME: return "attr name"; - break; case EVENT_VAL: return "attr val"; - break; case EVENT_END_DOC: return "end document"; - break; default: break; } diff --git a/components/rtgui/include/rtgui/widgets/checkbox.h b/components/rtgui/include/rtgui/widgets/checkbox.h index 9e9c325ab219ee311cec9bc0142fe0a5af2b0e82..65ca03d29cb234d9493da50c10fd6fb56c85da07 100644 --- a/components/rtgui/include/rtgui/widgets/checkbox.h +++ b/components/rtgui/include/rtgui/widgets/checkbox.h @@ -27,7 +27,7 @@ typedef struct rtgui_checkbox rtgui_checkbox_t; rtgui_type_t *rtgui_checkbox_type_get(void); -rtgui_checkbox_t* rtgui_checkbox_create(unsigned char* text, rt_bool_t checked); +rtgui_checkbox_t* rtgui_checkbox_create(const char* text, rt_bool_t checked); void rtgui_checkbox_destroy(rtgui_checkbox_t* checkbox); void rtgui_checkbox_set_checked(rtgui_checkbox_t* checkbox, rt_bool_t checked); diff --git a/components/rtgui/widgets/checkbox.c b/components/rtgui/widgets/checkbox.c index 46844eec23130ab048e77b0ea557b46407d0857c..f90ec249baf9dc68f68763b6bc58b3ab0ecb9532 100644 --- a/components/rtgui/widgets/checkbox.c +++ b/components/rtgui/widgets/checkbox.c @@ -87,7 +87,7 @@ rt_bool_t rtgui_checkbox_event_handler(struct rtgui_widget* widget, struct rtgui return RT_FALSE; } -struct rtgui_checkbox* rtgui_checkbox_create(unsigned char* text, rt_bool_t checked) +struct rtgui_checkbox* rtgui_checkbox_create(const char* text, rt_bool_t checked) { struct rtgui_checkbox* box;