[X2Go-Commits] [pale-moon] 15/22: Update dimensions early in ClearTarget.

git-admin at x2go.org git-admin at x2go.org
Sat Sep 29 03:25:23 CEST 2018


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch upstream/palemoon-master
in repository pale-moon.

commit 1abb23fdfaef17697209632b410a5432f72a71ed
Author: Pale Moon <git-repo at palemoon.org>
Date:   Sun Jul 1 14:20:57 2018 +0200

    Update dimensions early in ClearTarget.
---
 dom/canvas/CanvasRenderingContext2D.cpp | 14 +++++++++-----
 dom/canvas/CanvasRenderingContext2D.h   |  5 ++++-
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/dom/canvas/CanvasRenderingContext2D.cpp b/dom/canvas/CanvasRenderingContext2D.cpp
index 1b44c82..8c202f2 100644
--- a/dom/canvas/CanvasRenderingContext2D.cpp
+++ b/dom/canvas/CanvasRenderingContext2D.cpp
@@ -1435,8 +1435,6 @@ CanvasRenderingContext2D::GetHeight() const
 NS_IMETHODIMP
 CanvasRenderingContext2D::SetDimensions(int32_t width, int32_t height)
 {
-  ClearTarget();
-
   // Zero sized surfaces can cause problems.
   mZero = false;
   if (height == 0) {
@@ -1447,14 +1445,14 @@ CanvasRenderingContext2D::SetDimensions(int32_t width, int32_t height)
     width = 1;
     mZero = true;
   }
-  mWidth = width;
-  mHeight = height;
 
+  ClearTarget(width, height);
+  
   return NS_OK;
 }
 
 void
-CanvasRenderingContext2D::ClearTarget()
+CanvasRenderingContext2D::ClearTarget(int32_t aWidth, int32_t aHeight)
 {
   Reset();
 
@@ -1473,6 +1471,12 @@ CanvasRenderingContext2D::ClearTarget()
   state->colorStyles[Style::STROKE] = NS_RGB(0,0,0);
   state->shadowColor = NS_RGBA(0,0,0,0);
 
+  // Update dimensions only if new (strictly positive) values were passed.
+  if (aWidth > 0 && aHeight > 0) {
+    mWidth = aWidth;
+    mHeight = aHeight;
+  }  
+  
   // For vertical writing-mode, unless text-orientation is sideways,
   // we'll modify the initial value of textBaseline to 'middle'.
   nsRefPtr<nsStyleContext> canvasStyle;
diff --git a/dom/canvas/CanvasRenderingContext2D.h b/dom/canvas/CanvasRenderingContext2D.h
index 512c212..2f0f515 100644
--- a/dom/canvas/CanvasRenderingContext2D.h
+++ b/dom/canvas/CanvasRenderingContext2D.h
@@ -704,8 +704,11 @@ protected:
 
   /**
    * Disposes an old target and prepares to lazily create a new target.
+   *
+   * Parameters are the new dimensions to be used.
+   * if either is negative or undefined, dimensions will remain unchanged.
    */
-  void ClearTarget();
+  void ClearTarget(int32_t aWidth = -1, int32_t aHeight = -1);
 
   /**
    * Check if the target is valid after calling EnsureTarget.

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/pale-moon.git


More information about the x2go-commits mailing list