diff --git a/paint/sources/base.c b/paint/sources/base.c index df450099..fbdecdde 100644 --- a/paint/sources/base.c +++ b/paint/sources/base.c @@ -916,6 +916,15 @@ void base_update_workspace() { render_path_resize(); } + if (g_config->touch_ui) { + g_config->layout->buffer[LAYOUT_SIZE_HEADER] = 0; + if (g_config->workspace == WORKSPACE_PAINT_2D || g_config->workspace == WORKSPACE_PAINT_3D) { + ui_sidebar_show(true); + g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W] = ui_sidebar_default_w_mini; + g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W] = math_floor(g_config->layout->buffer[LAYOUT_SIZE_SIDEBAR_W] * UI_SCALE()); + } + } + base_resize(); } diff --git a/paint/sources/ui/ui_nodes.c b/paint/sources/ui/ui_nodes.c index 1aeb84ed..f0dc411a 100644 --- a/paint/sources/ui/ui_nodes.c +++ b/paint/sources/ui/ui_nodes.c @@ -89,9 +89,11 @@ void ui_nodes_node_search_menu() { } bool enter = keyboard_down("enter"); i32 count = 0; - i32 BUTTON_COL = g_theme->BUTTON_COL; - bool FILL_BUTTON_BG = g_theme->FILL_BUTTON_BG; + i32 _BUTTON_COL = g_theme->BUTTON_COL; + bool _FILL_BUTTON_BG = g_theme->FILL_BUTTON_BG; g_theme->FILL_BUTTON_BG = true; + bool _SHADOWS = g_theme->SHADOWS; + g_theme->SHADOWS = false; node_list_t_array_t *node_list = ui_nodes_canvas_type == CANVAS_TYPE_MATERIAL ? nodes_material_list : nodes_brush_list; @@ -101,6 +103,7 @@ void ui_nodes_node_search_menu() { ui_node_t *n = list->buffer[i]; if (string_index_of(to_lower_case(tr(n->name)), search) >= 0) { g_theme->BUTTON_COL = count == ui_nodes_node_search_offset ? g_theme->HIGHLIGHT_COL : g_theme->SEPARATOR_COL; + if (ui_button(tr(n->name), UI_ALIGN_LEFT, "") || (enter && count == ui_nodes_node_search_offset)) { ui_nodes_push_undo(NULL); ui_nodes_t *nodes = ui_nodes_get_nodes(); @@ -138,8 +141,9 @@ void ui_nodes_node_search_menu() { g_ui->changed = true; search_handle->text = ""; } - g_theme->BUTTON_COL = BUTTON_COL; - g_theme->FILL_BUTTON_BG = FILL_BUTTON_BG; + g_theme->BUTTON_COL = _BUTTON_COL; + g_theme->FILL_BUTTON_BG = _FILL_BUTTON_BG; + g_theme->SHADOWS = _SHADOWS; } void ui_nodes_node_search(i32 x, i32 y, void (*done)(void)) { @@ -562,9 +566,21 @@ void ui_nodes_draw_menubar() { i32 start_y = top_y + UI_ELEMENT_OFFSET(); g_ui->_x = 0; g_ui->_y = 2 + start_y; - g_ui->_w = ew; + + if (g_config->touch_ui && !base_view3d_show && !ui_view2d_show) { + g_ui->_w = math_floor(ew + 3); + if (ui_icon_button("Back", ICON_ARROW_LEFT, UI_ALIGN_CENTER)) { + g_ui->input_released = false; + g_config->workspace = WORKSPACE_PAINT_3D; + config_save(); + base_update_workspace(); + } + g_ui->_x += ew + 3; + g_ui->_y = 2 + start_y; + } // Editable canvas name + g_ui->_w = ew; ui_handle_t *h = ui_handle(__ID__); h->text = string_copy(c->name); g_ui->_w = math_floor(math_min(draw_string_width(g_font, g_ui->font_size, h->text) + 15 * UI_SCALE(), 100 * UI_SCALE())); diff --git a/paint/sources/ui/ui_toolbar.c b/paint/sources/ui/ui_toolbar.c index d094904c..d8ef98c0 100644 --- a/paint/sources/ui/ui_toolbar.c +++ b/paint/sources/ui/ui_toolbar.c @@ -120,10 +120,8 @@ i32 ui_toolbar_x() { } void ui_toolbar_draw_show_3d_view() { - if (context_is_floating_toolbar()) { + if (g_config->touch_ui) { i32 toolbar_w = ui_toolbar_default_w * UI_SCALE() + 14 * UI_SCALE(); - i32 _WINDOW_BG_COL = g_theme->WINDOW_BG_COL; - // ui.ops.theme.WINDOW_BG_COL = ui.ops.theme.SEPARATOR_COL; i32 y = ui_header_h + 8 * UI_SCALE(); if ((ui_view2d_show || ui_nodes_show) && !g_config->touch_ui) { @@ -151,7 +149,6 @@ void ui_toolbar_draw_show_3d_view() { g_theme->BUTTON_COL = _BUTTON_COL; g_ui->font_offset_y = _fontOffsetY; } - g_theme->WINDOW_BG_COL = _WINDOW_BG_COL; } } diff --git a/paint/sources/ui/ui_view2d.c b/paint/sources/ui/ui_view2d.c index 083b548d..a435cf84 100644 --- a/paint/sources/ui/ui_view2d.c +++ b/paint/sources/ui/ui_view2d.c @@ -531,9 +531,21 @@ void ui_view2d_update(void *_) { f32 start_y = top_y + UI_ELEMENT_OFFSET(); g_ui->_x = 2; g_ui->_y = 2 + start_y; - g_ui->_w = ew; + + if (g_config->touch_ui && !base_view3d_show) { + g_ui->_w = math_floor(ew * 0.7 + 3); + if (ui_icon_button(tr("Back"), ICON_ARROW_LEFT, UI_ALIGN_CENTER)) { + g_ui->input_released = false; + g_config->workspace = WORKSPACE_PAINT_3D; + config_save(); + base_update_workspace(); + } + g_ui->_x += ew * 0.7 + 3; + g_ui->_y = 2 + start_y; + } // Editable layer name + g_ui->_w = ew; ui_handle_t *h = ui_handle(__ID__); char *text = ui_view2d_type == VIEW_2D_TYPE_NODE ? g_context->node_preview_name : h->text;