From f85a86f72d0f51ba13ecb9445468dbf2a8a89edd Mon Sep 17 00:00:00 2001 From: Neil Hodgson Date: Fri, 19 Jun 2015 10:11:44 +1000 Subject: Fix crash in drag and drop. --- cocoa/PlatCocoa.mm | 14 +++++++++++--- cocoa/ScintillaCocoa.mm | 2 ++ doc/ScintillaHistory.html | 3 +++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/cocoa/PlatCocoa.mm b/cocoa/PlatCocoa.mm index fd3e97619..8a0f942f4 100644 --- a/cocoa/PlatCocoa.mm +++ b/cocoa/PlatCocoa.mm @@ -270,9 +270,17 @@ void SurfaceImpl::InitPixMap(int width, int height, Surface* surface_, WindowID CGContextFillRect( gc, CGRectMake( 0, 0, width, height ) ); } - SurfaceImpl *psurfOther = static_cast(surface_); - unicodeMode = psurfOther->unicodeMode; - codePage = psurfOther->codePage; + if (surface_) + { + SurfaceImpl *psurfOther = static_cast(surface_); + unicodeMode = psurfOther->unicodeMode; + codePage = psurfOther->codePage; + } + else + { + unicodeMode = true; + codePage = SC_CP_UTF8; + } } //-------------------------------------------------------------------------------------------------- diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm index e3d0369b6..2fce53ded 100644 --- a/cocoa/ScintillaCocoa.mm +++ b/cocoa/ScintillaCocoa.mm @@ -1426,6 +1426,8 @@ void ScintillaCocoa::StartDrag() paintState = notPainting; pixmap->InitPixMap(static_cast(imageRect.Width()), static_cast(imageRect.Height()), NULL, NULL); + pixmap->SetUnicodeMode(IsUnicodeMode()); + pixmap->SetDBCSMode(CodePage()); CGContextRef gc = pixmap->GetContext(); // To make Paint() work on a bitmap, we have to flip our coordinates and translate the origin diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 1e1356b4f..409245739 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -514,6 +514,9 @@ Bug #1728.
  • + On Cocoa fix crash in drag and drop. +
  • +
  • On GTK+ 3.4+, when there are both horizontal and vertical scrollbars, draw the lower-right corner so that it does not appear black when text selected. Bug #1611. -- cgit v1.2.3