summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--components/rtgui/widgets/box.c6
-rw-r--r--components/rtgui/widgets/combobox.c4
-rw-r--r--components/rtgui/widgets/workbench.c1
3 files changed, 8 insertions, 3 deletions
diff --git a/components/rtgui/widgets/box.c b/components/rtgui/widgets/box.c
index 579e3dfffe..e5fc0e8318 100644
--- a/components/rtgui/widgets/box.c
+++ b/components/rtgui/widgets/box.c
@@ -75,6 +75,12 @@ void rtgui_box_append(struct rtgui_box* box, rtgui_widget_t* widget)
rtgui_container_add_child(RTGUI_CONTAINER(box), widget);
}
+void rtgui_box_delete(struct rtgui_box* box, rtgui_widget_t* widget)
+{
+ /* remove from box's children list */
+ rtgui_container_remove_child(RTGUI_CONTAINER(box), widget);
+}
+
static void rtgui_box_layout_vertical(rtgui_box_t* box)
{
rtgui_list_t *node;
diff --git a/components/rtgui/widgets/combobox.c b/components/rtgui/widgets/combobox.c
index c119162003..972d467fed 100644
--- a/components/rtgui/widgets/combobox.c
+++ b/components/rtgui/widgets/combobox.c
@@ -207,13 +207,11 @@ rt_bool_t rtgui_combobox_event_handler(struct rtgui_widget* widget, struct rtgui
case RTGUI_EVENT_FOCUSED:
{
/* item focused */
- struct rtgui_item* item;
struct rtgui_event_focused* focused;
focused = (struct rtgui_event_focused*) event;
- item = (struct rtgui_item*) (focused->widget);
- if (item != RT_NULL)
+ if (focused->widget != RT_NULL)
{
/* hide pull down window */
rtgui_win_hiden(RTGUI_WIN(box->pd_win));
diff --git a/components/rtgui/widgets/workbench.c b/components/rtgui/widgets/workbench.c
index 1e57df70a9..4dd3f7e6e8 100644
--- a/components/rtgui/widgets/workbench.c
+++ b/components/rtgui/widgets/workbench.c
@@ -147,6 +147,7 @@ void rtgui_workbench_close(rtgui_workbench_t* workbench)
/* detach from panel */
edetach.panel = workbench->panel;
+ edetach.workbench = workbench;
/* send PANEL DETACH to server */
if (rtgui_thread_send_sync(RTGUI_TOPLEVEL(workbench)->server,