diff options
Diffstat (limited to 'mozilla-bmo1504834-part4.patch')
-rw-r--r-- | mozilla-bmo1504834-part4.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/mozilla-bmo1504834-part4.patch b/mozilla-bmo1504834-part4.patch new file mode 100644 index 000000000000..a7052643d23e --- /dev/null +++ b/mozilla-bmo1504834-part4.patch @@ -0,0 +1,40 @@ +# HG changeset patch +# Parent 883d2c7fec80b9714ccfefa461a02f5b09e3ee09 +Problem description: Tab-titles that are too long to fit into a tab get faded out. + On big endian this is broken and instead of fading out, the + tab gets white and the font transparent, leading to an unreadable + tab-title +Solution: This is not a real solution, but a hack. The real solution would have been + to byte-swap the correct buffer, but I could not find it. + So the next best thing is to deactivate the fading-effect. Now all tab-titles + are readable, albeit not as pretty to look at as they could be. +Side-effects: I have not yet found an unwanted side-effect. + +diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp +--- a/gfx/2d/DrawTargetSkia.cpp ++++ b/gfx/2d/DrawTargetSkia.cpp +@@ -1856,16 +1856,24 @@ void DrawTargetSkia::PushLayerWithBlend( + } + + SkCanvas::SaveLayerRec saveRec( + aBounds.IsEmpty() ? nullptr : &bounds, &paint, nullptr, clipImage.get(), + &clipMatrix, + SkCanvas::kPreserveLCDText_SaveLayerFlag | + (aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0)); + ++#if MOZ_BIG_ENDIAN() ++ // Pushing a layer where an aMask is defined produces wrong output. ++ // We _should_ endian swap the data, but I couldn't find a workable way to do so ++ // Therefore I deactivate those layers in the meantime. ++ // The result is: Tab-titles that are longer than the available space should be faded out. ++ // The fading doesn't work, so we deactivate the fading-effect here. ++ if (!aMask) ++#endif + mCanvas->saveLayer(saveRec); + + SetPermitSubpixelAA(aOpaque); + + #ifdef MOZ_WIDGET_COCOA + CGContextRelease(mCG); + mCG = nullptr; + #endif |