diff --git a/apps/file_manager/ui.cpp b/apps/file_manager/ui.cpp index 705003d..9a66a9d 100644 --- a/apps/file_manager/ui.cpp +++ b/apps/file_manager/ui.cpp @@ -1026,6 +1026,7 @@ int BreadcrumbBarMessage(EsElement *element, EsMessage *message) { String path = PathGetParent(instance->folder->path, message->getBreadcrumb.index); NamespaceGetVisibleName(message->getBreadcrumb.buffer, path); + message->getBreadcrumb.icon = message->getBreadcrumb.index ? 0 : NamespaceGetIcon(path); return ES_HANDLED; } diff --git a/desktop/os.header b/desktop/os.header index ab43a19..1954fab 100644 --- a/desktop/os.header +++ b/desktop/os.header @@ -1716,6 +1716,7 @@ struct EsMessageNumberUpdated { struct EsMessageGetBreadcrumb { uintptr_t index; // Set response to ES_REJECTED if this equals the number of breadcrumbs. EsBuffer *buffer; + uint32_t icon; }; struct EsMessageEndEdit { diff --git a/desktop/text.cpp b/desktop/text.cpp index b0b95de..9242e5f 100644 --- a/desktop/text.cpp +++ b/desktop/text.cpp @@ -4861,7 +4861,7 @@ void TextboxBreadcrumbOverlayRecreate(EsTextbox *textbox) { m.getBreadcrumb.buffer = &buffer; while (true) { - buffer.position = 0; + buffer.position = 0, m.getBreadcrumb.icon = 0; int response = EsMessageSend(textbox, &m); EsAssert(response != 0); // Must handle ES_MSG_TEXTBOX_GET_BREADCRUMB message for breadcrumb overlay. if (response == ES_REJECTED) break; @@ -4870,6 +4870,8 @@ void TextboxBreadcrumbOverlayRecreate(EsTextbox *textbox) { ES_STYLE_BREADCRUMB_BAR_CRUMB, (char *) buffer.out, buffer.position); if (crumb) { + EsButtonSetIcon(crumb, m.getBreadcrumb.icon); + crumb->userData = m.getBreadcrumb.index; crumb->messageUser = [] (EsElement *element, EsMessage *message) { diff --git a/res/Theme Source.dat b/res/Theme Source.dat index 8173ec6..5aa9b69 100644 Binary files a/res/Theme Source.dat and b/res/Theme Source.dat differ diff --git a/res/Theme.dat b/res/Theme.dat index 6264c35..1dcddd3 100644 Binary files a/res/Theme.dat and b/res/Theme.dat differ