From 82cdca266c8267edcf7bed204c72fb5474de531a Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Tue, 9 Sep 2014 21:59:25 +0100 Subject: [PATCH] fixed CSS applying --- .../src/formats/html/HtmlBookReader.cpp | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/jni/NativeFormats/fbreader/src/formats/html/HtmlBookReader.cpp b/jni/NativeFormats/fbreader/src/formats/html/HtmlBookReader.cpp index b567dd9af..bc75f9bbf 100644 --- a/jni/NativeFormats/fbreader/src/formats/html/HtmlBookReader.cpp +++ b/jni/NativeFormats/fbreader/src/formats/html/HtmlBookReader.cpp @@ -447,22 +447,11 @@ bool HtmlBookReader::tagHandler(const HtmlTag &tag) { tagData->addEntry(myStyleSheetTable.control(tag.Name, *cls)); } myTagDataStack.push_back(tagData); - - for (std::vector >::const_iterator it = myTagDataStack.begin(); it != myTagDataStack.end(); ++it) { - const std::vector > &entries = (*it)->StyleEntries; - const bool inheritedOnly = it + 1 != myTagDataStack.end(); - for (std::vector >::const_iterator jt = entries.begin(); jt != entries.end(); ++jt) { - shared_ptr entry = inheritedOnly ? (*jt)->inherited() : *jt; - myBookReader.addStyleEntry(*entry); - } - } - } else { - if (!myTagDataStack.empty()) { - for (int i = myTagDataStack.back()->StyleEntries.size(); i > 0; --i) { - myBookReader.addStyleCloseEntry(); - } - myTagDataStack.pop_back(); + } else if (!myTagDataStack.empty()) { + for (int i = myTagDataStack.back()->StyleEntries.size(); i > 0; --i) { + myBookReader.addStyleCloseEntry(); } + myTagDataStack.pop_back(); } const std::string *id = tag.find("id"); if (id != 0) { @@ -475,6 +464,17 @@ bool HtmlBookReader::tagHandler(const HtmlTag &tag) { } action->run(tag); + if (tag.Start) { + for (std::vector >::const_iterator it = myTagDataStack.begin(); it != myTagDataStack.end(); ++it) { + const std::vector > &entries = (*it)->StyleEntries; + const bool inheritedOnly = it + 1 != myTagDataStack.end(); + for (std::vector >::const_iterator jt = entries.begin(); jt != entries.end(); ++jt) { + shared_ptr entry = inheritedOnly ? (*jt)->inherited() : *jt; + myBookReader.addStyleEntry(*entry); + } + } + } + return true; }