diff --git a/src/core/composer/qgscomposerhtml.cpp b/src/core/composer/qgscomposerhtml.cpp
index 9a0f81fd7e3..f12174ecdb4 100644
--- a/src/core/composer/qgscomposerhtml.cpp
+++ b/src/core/composer/qgscomposerhtml.cpp
@@ -376,6 +376,8 @@ double QgsComposerHtml::findNearbyPageBreak( double yPos )
//of maxSearchDistance
int changes = 0;
QRgb currentColor;
+ bool currentPixelTransparent = false;
+ bool previousPixelTransparent = false;
QRgb pixelColor;
QList< QPair > candidates;
int minRow = qMax( idealPos - maxSearchDistance, 0 );
@@ -391,12 +393,14 @@ double QgsComposerHtml::findNearbyPageBreak( double yPos )
//since this is likely a line break, or gap between table cells, etc
//but very unlikely to be midway through a text line or picture
pixelColor = mRenderedPage->pixel( col, candidateRow );
- if ( pixelColor != currentColor )
+ currentPixelTransparent = qAlpha( pixelColor ) == 0;
+ if ( pixelColor != currentColor && !( currentPixelTransparent && previousPixelTransparent ) )
{
//color has changed
currentColor = pixelColor;
changes++;
}
+ previousPixelTransparent = currentPixelTransparent;
}
candidates.append( qMakePair( candidateRow, changes ) );
}
diff --git a/tests/src/core/testqgscomposerhtml.cpp b/tests/src/core/testqgscomposerhtml.cpp
index 3651f711423..8112972d7ce 100644
--- a/tests/src/core/testqgscomposerhtml.cpp
+++ b/tests/src/core/testqgscomposerhtml.cpp
@@ -200,7 +200,7 @@ void TestQgsComposerHtml::tableMultiFrame()
void TestQgsComposerHtml::htmlMultiFrameSmartBreak()
{
QgsComposerHtml* htmlItem = new QgsComposerHtml( mComposition, false );
- QgsComposerFrame* htmlFrame = new QgsComposerFrame( mComposition, htmlItem, 10, 10, 100, 50 );
+ QgsComposerFrame* htmlFrame = new QgsComposerFrame( mComposition, htmlItem, 10, 10, 100, 52 );
htmlItem->addFrame( htmlFrame );
htmlItem->setResizeMode( QgsComposerMultiFrame::RepeatUntilFinished );
htmlItem->setUseSmartBreaks( true );
@@ -209,7 +209,7 @@ void TestQgsComposerHtml::htmlMultiFrameSmartBreak()
htmlItem->setUrl( QUrl( QString( "file:///%1" ).arg( QString( TEST_DATA_DIR ) + QDir::separator() + "test_html.html" ) ) );
htmlItem->frame( 0 )->setFrameEnabled( true );
QgsCompositionChecker checker1( "composerhtml_smartbreaks1", mComposition );
- bool result = checker1.testComposition( mReport );
+ bool result = checker1.testComposition( mReport, 0, 200 );
//page2
QgsCompositionChecker checker2( "composerhtml_smartbreaks2", mComposition );
diff --git a/tests/src/python/test_qgscomposerhtml.py b/tests/src/python/test_qgscomposerhtml.py
index c8d004d2512..733216f0575 100644
--- a/tests/src/python/test_qgscomposerhtml.py
+++ b/tests/src/python/test_qgscomposerhtml.py
@@ -102,7 +102,7 @@ class TestQgsComposerHtml(TestCase):
"""Test rendering to multiframes with smart breaks."""
composerHtml = QgsComposerHtml(self.mComposition, False)
htmlFrame = QgsComposerFrame(self.mComposition, composerHtml,
- 10, 10, 100, 50)
+ 10, 10, 100, 52)
composerHtml.addFrame(htmlFrame)
composerHtml.setResizeMode(
QgsComposerMultiFrame.RepeatUntilFinished)
@@ -113,7 +113,7 @@ class TestQgsComposerHtml(TestCase):
print "Checking page 1"
myPage = 0
checker1 = QgsCompositionChecker('composerhtml_smartbreaks1', self.mComposition)
- myTestResult, myMessage = checker1.testComposition( myPage )
+ myTestResult, myMessage = checker1.testComposition( myPage, 200 )
assert myTestResult, myMessage
print "Checking page 2"
diff --git a/tests/testdata/control_images/expected_composerhtml_smartbreaks1/expected_composerhtml_smartbreaks1.png b/tests/testdata/control_images/expected_composerhtml_smartbreaks1/expected_composerhtml_smartbreaks1.png
index a568ec77b36..2727b72b4a1 100644
Binary files a/tests/testdata/control_images/expected_composerhtml_smartbreaks1/expected_composerhtml_smartbreaks1.png and b/tests/testdata/control_images/expected_composerhtml_smartbreaks1/expected_composerhtml_smartbreaks1.png differ
diff --git a/tests/testdata/control_images/expected_composerhtml_smartbreaks2/expected_composerhtml_smartbreaks2.png b/tests/testdata/control_images/expected_composerhtml_smartbreaks2/expected_composerhtml_smartbreaks2.png
index dfdc2e5d897..eb9f6cc06f2 100644
Binary files a/tests/testdata/control_images/expected_composerhtml_smartbreaks2/expected_composerhtml_smartbreaks2.png and b/tests/testdata/control_images/expected_composerhtml_smartbreaks2/expected_composerhtml_smartbreaks2.png differ