initialize the Rendering Context from a GrafPort to fix a crash on print

This commit is contained in:
pierre%netscape.com 1999-01-21 08:41:21 +00:00
Родитель 93ea48b06c
Коммит 698b0c7465
4 изменённых файлов: 21 добавлений и 2 удалений

Просмотреть файл

@ -80,7 +80,7 @@ double pix_inch;
*/
NS_IMETHODIMP nsDeviceContextMac :: CreateRenderingContext(nsIRenderingContext *&aContext)
{
nsIRenderingContext *pContext;
nsRenderingContextMac *pContext;
nsresult rv;
GrafPtr thePort;

Просмотреть файл

@ -464,6 +464,24 @@ NS_IMETHODIMP nsRenderingContextMac::Init(nsIDeviceContext* aContext, nsDrawingS
//------------------------------------------------------------------------
// used by nsDeviceContextMac::CreateRenderingContext() for printing
nsresult nsRenderingContextMac::Init(nsIDeviceContext* aContext, GrafPtr aPort)
{
mContext = aContext;
NS_IF_ADDREF(mContext);
if (mOriginalSurface->GetPort() == nsnull)
mOriginalSurface->Init(aPort);
// select the surface
mFrontSurface->Init(aPort);
SelectDrawingSurface(mFrontSurface);
return NS_OK;
}
//------------------------------------------------------------------------
void nsRenderingContextMac::SelectDrawingSurface(DrawingSurface* aSurface)
{
if (! aSurface)

Просмотреть файл

@ -111,6 +111,7 @@ public:
//locals
NS_IMETHOD SetClipRectInPixels(const nsRect& aRect, nsClipCombine aCombine, PRBool &aClipEmpty);
NS_IMETHOD SetPortTextState();
nsresult Init(nsIDeviceContext* aContext, GrafPtr aPort);
protected:
void SelectDrawingSurface(DrawingSurface* aSurface);

Просмотреть файл

@ -80,7 +80,7 @@ double pix_inch;
*/
NS_IMETHODIMP nsDeviceContextMac :: CreateRenderingContext(nsIRenderingContext *&aContext)
{
nsIRenderingContext *pContext;
nsRenderingContextMac *pContext;
nsresult rv;
GrafPtr thePort;