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