diff options
| -rw-r--r-- | cocoa/PlatCocoa.h | 3 | ||||
| -rw-r--r-- | cocoa/PlatCocoa.mm | 10 | ||||
| -rw-r--r-- | qt/ScintillaEditBase/PlatQt.cpp | 31 | ||||
| -rw-r--r-- | qt/ScintillaEditBase/PlatQt.h | 2 | ||||
| -rw-r--r-- | win32/PlatWin.cxx | 18 | 
5 files changed, 45 insertions, 19 deletions
| diff --git a/cocoa/PlatCocoa.h b/cocoa/PlatCocoa.h index 7557fbd35..843128a6c 100644 --- a/cocoa/PlatCocoa.h +++ b/cocoa/PlatCocoa.h @@ -65,6 +65,9 @@ private:    static const int BITS_PER_COMPONENT = 8;    static const int BITS_PER_PIXEL = BITS_PER_COMPONENT * 4;    static const int BYTES_PER_PIXEL = BITS_PER_PIXEL / 8; + +	void Clear(); +  public:    SurfaceImpl();    ~SurfaceImpl() override; diff --git a/cocoa/PlatCocoa.mm b/cocoa/PlatCocoa.mm index ab9d449a0..97fee88d7 100644 --- a/cocoa/PlatCocoa.mm +++ b/cocoa/PlatCocoa.mm @@ -156,12 +156,12 @@ SurfaceImpl::SurfaceImpl()  SurfaceImpl::~SurfaceImpl()  { -  Release(); +  Clear();  }  //-------------------------------------------------------------------------------------------------- -void SurfaceImpl::Release() +void SurfaceImpl::Clear()  {    textLayout->setContext(nullptr);    if (bitmapData) @@ -181,6 +181,12 @@ void SurfaceImpl::Release()  //-------------------------------------------------------------------------------------------------- +void SurfaceImpl::Release() { +	Clear(); +} + +//-------------------------------------------------------------------------------------------------- +  bool SurfaceImpl::Initialised()  {    // We are initalised if the graphics context is not null diff --git a/qt/ScintillaEditBase/PlatQt.cpp b/qt/ScintillaEditBase/PlatQt.cpp index 87496a191..e32fec67d 100644 --- a/qt/ScintillaEditBase/PlatQt.cpp +++ b/qt/ScintillaEditBase/PlatQt.cpp @@ -165,7 +165,23 @@ SurfaceImpl::SurfaceImpl()  SurfaceImpl::~SurfaceImpl()  { -	Release(); +	Clear(); +} + +void SurfaceImpl::Clear() +{ +	if (painterOwned && painter) { +		delete painter; +	} + +	if (deviceOwned && device) { +		delete device; +	} + +	device = 0; +	painter = 0; +	deviceOwned = false; +	painterOwned = false;  }  void SurfaceImpl::Init(WindowID wid) @@ -197,18 +213,7 @@ void SurfaceImpl::InitPixMap(int width,  void SurfaceImpl::Release()  { -	if (painterOwned && painter) { -		delete painter; -	} - -	if (deviceOwned && device) { -		delete device; -	} - -	device = 0; -	painter = 0; -	deviceOwned = false; -	painterOwned = false; +	Clear();  }  bool SurfaceImpl::Initialised() diff --git a/qt/ScintillaEditBase/PlatQt.h b/qt/ScintillaEditBase/PlatQt.h index 6749c4b0f..8a5edeacd 100644 --- a/qt/ScintillaEditBase/PlatQt.h +++ b/qt/ScintillaEditBase/PlatQt.h @@ -60,6 +60,8 @@ private:  	const char *codecName;  	QTextCodec *codec; +	void Clear(); +  public:  	SurfaceImpl();  	virtual ~SurfaceImpl(); diff --git a/win32/PlatWin.cxx b/win32/PlatWin.cxx index 00b118c82..90433201e 100644 --- a/win32/PlatWin.cxx +++ b/win32/PlatWin.cxx @@ -513,6 +513,7 @@ class SurfaceGDI : public Surface {  	void BrushColor(ColourDesired back);  	void SetFont(Font &font_); +	void Clear();  public:  	SurfaceGDI(); @@ -578,10 +579,10 @@ SurfaceGDI::SurfaceGDI() :  }  SurfaceGDI::~SurfaceGDI() { -	Release(); +	Clear();  } -void SurfaceGDI::Release() { +void SurfaceGDI::Clear() {  	if (penOld) {  		::SelectObject(hdc, penOld);  		::DeleteObject(pen); @@ -613,6 +614,10 @@ void SurfaceGDI::Release() {  	}  } +void SurfaceGDI::Release() { +	Clear(); +} +  bool SurfaceGDI::Initialised() {  	return hdc != 0;  } @@ -1066,6 +1071,7 @@ class SurfaceD2D : public Surface {  	float dpiScaleX;  	float dpiScaleY; +	void Clear();  	void SetFont(Font &font_);  public: @@ -1147,10 +1153,10 @@ SurfaceD2D::SurfaceD2D() :  }  SurfaceD2D::~SurfaceD2D() { -	Release(); +	Clear();  } -void SurfaceD2D::Release() { +void SurfaceD2D::Clear() {  	if (pBrush) {  		pBrush->Release();  		pBrush = 0; @@ -1167,6 +1173,10 @@ void SurfaceD2D::Release() {  	}  } +void SurfaceD2D::Release() { +	Clear(); +} +  void SurfaceD2D::SetScale() {  	HDC hdcMeasure = ::CreateCompatibleDC(NULL);  	logPixelsY = ::GetDeviceCaps(hdcMeasure, LOGPIXELSY); | 
