From 3daac54bd16762809724b5811589a80cad94724e Mon Sep 17 00:00:00 2001 From: "peterlubczynski%netscape.com" Date: Fri, 8 Mar 2002 15:49:43 +0000 Subject: [PATCH] Fix for windowless plugins not painting in the right place, bug 118721 patch by mailto:dbrittain@superscape.com r=peterl sr=roc+moz a=asa --- layout/generic/nsObjectFrame.cpp | 7 +++++-- layout/html/base/src/nsObjectFrame.cpp | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/layout/generic/nsObjectFrame.cpp b/layout/generic/nsObjectFrame.cpp index 3f9a2fbe024..ec6281716be 100644 --- a/layout/generic/nsObjectFrame.cpp +++ b/layout/generic/nsObjectFrame.cpp @@ -102,6 +102,7 @@ #include "nsGfxCIID.h" #include "nsHTMLUtils.h" #include "nsUnicharUtils.h" +#include "nsTransform2D.h" // headers for plugin scriptability #include "nsIScriptGlobalObject.h" @@ -1763,9 +1764,11 @@ nsObjectFrame::Paint(nsIPresContext* aPresContext, doupdatewindow = PR_TRUE; } - // check if we need to update window position + // Get the offset of the DC + nsTransform2D* rcTransform; + aRenderingContext.GetCurrentTransform(rcTransform); nsPoint origin; - GetWindowOriginInPixels(aPresContext, PR_TRUE, &origin); + rcTransform->GetTranslationCoord(&origin.x, &origin.y); if((window->x != origin.x) || (window->y != origin.y)) { window->x = origin.x; diff --git a/layout/html/base/src/nsObjectFrame.cpp b/layout/html/base/src/nsObjectFrame.cpp index 3f9a2fbe024..ec6281716be 100644 --- a/layout/html/base/src/nsObjectFrame.cpp +++ b/layout/html/base/src/nsObjectFrame.cpp @@ -102,6 +102,7 @@ #include "nsGfxCIID.h" #include "nsHTMLUtils.h" #include "nsUnicharUtils.h" +#include "nsTransform2D.h" // headers for plugin scriptability #include "nsIScriptGlobalObject.h" @@ -1763,9 +1764,11 @@ nsObjectFrame::Paint(nsIPresContext* aPresContext, doupdatewindow = PR_TRUE; } - // check if we need to update window position + // Get the offset of the DC + nsTransform2D* rcTransform; + aRenderingContext.GetCurrentTransform(rcTransform); nsPoint origin; - GetWindowOriginInPixels(aPresContext, PR_TRUE, &origin); + rcTransform->GetTranslationCoord(&origin.x, &origin.y); if((window->x != origin.x) || (window->y != origin.y)) { window->x = origin.x;