From 428cd55c487be6d6947a2c671bbcba0149ae7f84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Fri, 22 May 2026 01:11:39 -0300 Subject: [PATCH] Fix bug in CSS id selectors not working properly because we were lower-casing them for no reason. --- src/eepp/ui/css/stylesheetselector.cpp | 5 +---- src/eepp/ui/css/stylesheetselectorrule.cpp | 10 ++++++---- src/tests/unit_tests/uihtml_tests.cpp | 5 +++++ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/eepp/ui/css/stylesheetselector.cpp b/src/eepp/ui/css/stylesheetselector.cpp index 5caf6503b..ec98117cb 100644 --- a/src/eepp/ui/css/stylesheetselector.cpp +++ b/src/eepp/ui/css/stylesheetselector.cpp @@ -8,10 +8,7 @@ StyleSheetSelector::StyleSheetSelector() : mName( "*" ), mSpecificity( 0 ), mCac } StyleSheetSelector::StyleSheetSelector( const std::string& selectorName ) : - mName( String::toLower( selectorName ) ), - mSpecificity( 0 ), - mCacheable( true ), - mStructurallyVolatile( false ) { + mName( selectorName ), mSpecificity( 0 ), mCacheable( true ), mStructurallyVolatile( false ) { parseSelector( mName ); } diff --git a/src/eepp/ui/css/stylesheetselectorrule.cpp b/src/eepp/ui/css/stylesheetselectorrule.cpp index 12f6aee27..dc1bcc080 100644 --- a/src/eepp/ui/css/stylesheetselectorrule.cpp +++ b/src/eepp/ui/css/stylesheetselectorrule.cpp @@ -87,19 +87,21 @@ void StyleSheetSelectorRule::pushSelectorTypeIdentifier( TypeIdentifier selector std::string name ) { switch ( selectorTypeIdentifier ) { case GLOBAL: - mTagName = name; + String::toLowerInPlace( name ); + mTagName = std::move( name ); mSpecificity += SpecificityGlobal; break; case TAG: - mTagName = name; + String::toLowerInPlace( name ); + mTagName = std::move( name ); mSpecificity += SpecificityTag; break; case CLASS: - mClasses.push_back( name ); + mClasses.push_back( std::move( name ) ); mSpecificity += SpecificityClass; break; case ID: - mId = name; + mId = std::move( name ); mSpecificity += SpecificityId; break; default: diff --git a/src/tests/unit_tests/uihtml_tests.cpp b/src/tests/unit_tests/uihtml_tests.cpp index 6d2e8b759..2dea0a8e4 100644 --- a/src/tests/unit_tests/uihtml_tests.cpp +++ b/src/tests/unit_tests/uihtml_tests.cpp @@ -2234,14 +2234,19 @@ UTEST( UIHTML, RedditHeaderPagenameBottomAlign ) { auto* headerLeft = sceneNode->getRoot()->find( "header-bottom-left" )->asType(); auto* logo = sceneNode->getRoot()->find( "header-img" )->asType(); auto* page = sceneNode->getRoot()->querySelector( ".pagename" )->asType(); + auto* jumpToContent = sceneNode->getRoot()->find( "jumpToContent" )->asType(); ASSERT_TRUE( headerLeft != nullptr ); ASSERT_TRUE( logo != nullptr ); ASSERT_TRUE( page != nullptr ); + ASSERT_TRUE( jumpToContent != nullptr ); EXPECT_EQ( logo->getBaselineAlign().type, CSSBaselineAlignment::Bottom ); EXPECT_EQ( page->getBaselineAlign().type, CSSBaselineAlignment::Bottom ); EXPECT_NEAR( headerLeft->getPixelsSize().getHeight(), page->getPixelsPosition().y + page->getPixelsSize().getHeight(), 0.5f ); + EXPECT_EQ( CSSPosition::Absolute, jumpToContent->getCSSPosition() ); + EXPECT_NEAR( -865.f, jumpToContent->convertToWorldSpace( { 0, 0 } ).x, 1.f ); + EXPECT_NEAR( 25.f, jumpToContent->convertToWorldSpace( { 0, 0 } ).y, 1.f ); Engine::destroySingleton(); }