mozilla-bmo1504834-part4.patch
branchfirefox102
changeset 1175 4c6576f9cf04
parent 1174 90e3d0cf8567
child 1176 f871aac89885
equal deleted inserted replaced
1174:90e3d0cf8567 1175:4c6576f9cf04
     1 # HG changeset patch
       
     2 # Parent  883d2c7fec80b9714ccfefa461a02f5b09e3ee09
       
     3 Problem description: Tab-titles that are too long to fit into a tab get faded out.
       
     4                      On big endian this is broken and instead of fading out, the
       
     5                      tab gets white and the font transparent, leading to an unreadable
       
     6                      tab-title
       
     7 Solution: This is not a real solution, but a hack. The real solution would have been
       
     8           to byte-swap the correct buffer, but I could not find it.
       
     9           So the next best thing is to deactivate the fading-effect. Now all tab-titles
       
    10           are readable, albeit not as pretty to look at as they could be.
       
    11 Side-effects: I have not yet found an unwanted side-effect.
       
    12 
       
    13 diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
       
    14 --- a/gfx/2d/DrawTargetSkia.cpp
       
    15 +++ b/gfx/2d/DrawTargetSkia.cpp
       
    16 @@ -1856,16 +1856,24 @@ void DrawTargetSkia::PushLayerWithBlend(
       
    17    }
       
    18  
       
    19    SkCanvas::SaveLayerRec saveRec(
       
    20        aBounds.IsEmpty() ? nullptr : &bounds, &paint, nullptr, clipImage.get(),
       
    21        &clipMatrix,
       
    22        SkCanvas::kPreserveLCDText_SaveLayerFlag |
       
    23            (aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
       
    24  
       
    25 +#if MOZ_BIG_ENDIAN()
       
    26 +  // Pushing a layer where an aMask is defined produces wrong output.
       
    27 +  // We _should_ endian swap the data, but I couldn't find a workable way to do so
       
    28 +  // Therefore I deactivate those layers in the meantime.
       
    29 +  // The result is: Tab-titles that are longer than the available space should be faded out.
       
    30 +  //                The fading doesn't work, so we deactivate the fading-effect here.
       
    31 +  if (!aMask)
       
    32 +#endif
       
    33    mCanvas->saveLayer(saveRec);
       
    34  
       
    35    SetPermitSubpixelAA(aOpaque);
       
    36  
       
    37  #ifdef MOZ_WIDGET_COCOA
       
    38    CGContextRelease(mCG);
       
    39    mCG = nullptr;
       
    40  #endif