diff --git a/lib/ui-router/tests/test.c b/lib/ui-router/tests/test.c index 3c5ab3890..bbb84cb16 100644 --- a/lib/ui-router/tests/test.c +++ b/lib/ui-router/tests/test.c @@ -619,6 +619,7 @@ void test_router_components(void) ui_event_init(&e, "click"); ui_widget_emit_event(link_foo, e, NULL); + // ui_update(); matched_widget = ui_router_view_get_matched_widget(view); ctest_equal_bool("[/foo] widget should load widget", strcmp(matched_widget->type, "foo") == 0, TRUE); diff --git a/lib/ui/include/ui/base.h b/lib/ui/include/ui/base.h index d15e78339..3ad3feae6 100644 --- a/lib/ui/include/ui/base.h +++ b/lib/ui/include/ui/base.h @@ -128,7 +128,8 @@ LIBUI_PUBLIC size_t ui_widget_render(ui_widget_t *w, pd_context_t *paint); // Updater LIBUI_PUBLIC size_t ui_widget_update(ui_widget_t *w); -LIBUI_PUBLIC size_t ui_update(void); +LIBUI_PUBLIC void ui_update(void); + LIBUI_PUBLIC void ui_refresh_style(void); LIBUI_PUBLIC void ui_widget_set_rules(ui_widget_t *w, diff --git a/lib/ui/src/ui_updater.c b/lib/ui/src/ui_updater.c index 429dbb7dc..183c67173 100644 --- a/lib/ui/src/ui_updater.c +++ b/lib/ui/src/ui_updater.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "ui_debug.h" #include "ui_diff.h" #include "ui_updater.h" @@ -98,7 +99,7 @@ void ui_widget_set_rules(ui_widget_t* w, const ui_widget_rules_t* rules) w->extra->default_max_update_count = 2048; } -void ui_widget_update_stacking_context(ui_widget_t* w) +static void ui_widget_update_stacking_context(ui_widget_t* w) { ui_widget_t *child, *target; css_computed_style_t *s, *ts; @@ -469,22 +470,22 @@ static void ui_process_mutations(ui_widget_t* w) w->update.border_box_backup = w->border_box; } -size_t ui_update(void) +void ui_update(void) { - size_t count; - ui_widget_t* root; - - root = ui_root(); + ui_widget_t *root = ui_root(); if (memcmp(&ui_metrics, &ui_updater.metrics, sizeof(ui_metrics_t))) { ui_updater.refresh_all = true; root->rendering.dirty_rect_type = UI_DIRTY_RECT_TYPE_FULL; } - count = ui_widget_update(root); + ui_process_image_events(); + ui_process_events(); + ui_widget_update(root); ui_updater.metrics = ui_metrics; ui_updater.refresh_all = false; ui_process_mutations(root); ui_process_mutation_observers(); - return count; + ui_process_events(); + ui_clear_trash(); } void ui_init_updater(void) diff --git a/src/lcui_ui.c b/src/lcui_ui.c index 99031b043..cb996865c 100644 --- a/src/lcui_ui.c +++ b/src/lcui_ui.c @@ -160,11 +160,7 @@ size_t lcui_render_ui(void) void lcui_update_ui(void) { - ui_clear_trash(); - ui_process_image_events(); - ui_process_events(); ui_update(); - thread_mutex_lock(&lcui_ui.image_loader.mutex); ui_clear_images(); thread_mutex_unlock(&lcui_ui.image_loader.mutex);