canvas: Properly restore all the remaining items in stateStack in endDrawing.
We were correctly finishing the SMask group but not restoring all the extra transformations applied in stateStack, so if somebody ends up drawing to the same context after canceling mid-draw we'd get artifacts. This re-lands #12363 and fixes Mozilla bug 1664178[1]. [1]: https://bugzilla.mozilla.org/show_bug.cgi?id=1664178
This commit is contained in:
parent
3a277f3ba5
commit
bf8b1adf73
@ -1009,8 +1009,8 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
|
||||
|
||||
endDrawing: function CanvasGraphics_endDrawing() {
|
||||
// Finishing all opened operations such as SMask group painting.
|
||||
if (this.current.activeSMask !== null) {
|
||||
this.endSMaskGroup();
|
||||
while (this.stateStack.length || this.current.activeSMask !== null) {
|
||||
this.restore();
|
||||
}
|
||||
|
||||
this.ctx.restore();
|
||||
|
Loading…
Reference in New Issue
Block a user