From c3df338befebf8b1105ad82e49892f9e24e1bd0f Mon Sep 17 00:00:00 2001 From: luboslenco Date: Mon, 28 Sep 2026 14:19:33 +0200 Subject: [PATCH] paint: fix submenu position --- paint/sources/ui/ui_menu.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/paint/sources/ui/ui_menu.c b/paint/sources/ui/ui_menu.c index 6787a8993..84f886695 100644 --- a/paint/sources/ui/ui_menu.c +++ b/paint/sources/ui/ui_menu.c @@ -202,13 +202,18 @@ bool ui_icon_button(char *text, icon_t icon, ui_align_t align) { return result; } +bool ui_menu_sub_left() { + return g_ui->_x + g_ui->_w * 2 + 2 > iron_window_width() && g_ui->_x - g_ui->_w - 2 >= 0; +} + bool ui_menu_sub_button(char *text) { g_ui->is_hovered = false; ui_menu_button(text, ">", ICON_NONE); + f32 dx = ui_menu_sub_left() ? -g_ui->input_dx : g_ui->input_dx; if (g_ui->is_hovered) { snprintf(ui_menu_sub_text, sizeof(ui_menu_sub_text), "%s", text); } - else if (math_abs(g_ui->input_dy) > g_ui->input_dx && g_ui->input_x < g_ui->_x + g_ui->_w) { + else if (math_abs(g_ui->input_dy) > dx && g_ui->input_x >= g_ui->_x && g_ui->input_x < g_ui->_x + g_ui->_w) { ui_menu_sub_text[0] = '\0'; } return string_equals(ui_menu_sub_text, text); @@ -251,7 +256,7 @@ void ui_menu_end() {} void ui_menu_sub_begin(i32 items) { ui_menu_sub_x = g_ui->_x; ui_menu_sub_y = g_ui->_y; - g_ui->_x += g_ui->_w + 2; + g_ui->_x += ui_menu_sub_left() ? -g_ui->_w - 2 : g_ui->_w + 2; g_ui->_y -= UI_ELEMENT_H(); ui_draw_shadow(g_ui->_x, g_ui->_y, g_ui->_w, UI_ELEMENT_H() * items); draw_set_color(g_theme->SEPARATOR_COL);