From de586bf0f75ea0ea0c8d3846558a457c6208dc88 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Sun, 10 Jul 2011 22:40:10 +1000 Subject: Return byte length of insertion for encoding from InsertText so can be used to underline text inserted by IME and replace correctly when the IME changes. --- cocoa/ScintillaCocoa.mm | 2 +- cocoa/ScintillaView.mm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'cocoa') diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm index c0667cf4e..196ae28e4 100644 --- a/cocoa/ScintillaCocoa.mm +++ b/cocoa/ScintillaCocoa.mm @@ -1672,7 +1672,7 @@ int ScintillaCocoa::InsertText(NSString* input) AddCharUTF((char*) buffer, usedLen, false); delete []buffer; - return true; + return usedLen; } //-------------------------------------------------------------------------------------------------- diff --git a/cocoa/ScintillaView.mm b/cocoa/ScintillaView.mm index 5025fe209..174c5c256 100644 --- a/cocoa/ScintillaView.mm +++ b/cocoa/ScintillaView.mm @@ -301,10 +301,10 @@ NSString *SCIUpdateUINotification = @"SCIUpdateUI"; // Note: Scintilla internally works almost always with bytes instead chars, so we need to take // this into account when determining selection ranges and such. std::string raw_text = [newText UTF8String]; - mOwner.backend->InsertText(newText); + int lengthInserted = mOwner.backend->InsertText(newText); mMarkedTextRange.location = currentPosition; - mMarkedTextRange.length = raw_text.size(); + mMarkedTextRange.length = lengthInserted; // Mark the just inserted text. Keep the marked range for later reset. [mOwner setGeneralProperty: SCI_SETINDICATORCURRENT value: INPUT_INDICATOR]; -- cgit v1.2.3