diff options
Diffstat (limited to 'cocoa/ScintillaView.mm')
| -rw-r--r-- | cocoa/ScintillaView.mm | 36 | 
1 files changed, 17 insertions, 19 deletions
| diff --git a/cocoa/ScintillaView.mm b/cocoa/ScintillaView.mm index 2db8fae12..97bc0edfe 100644 --- a/cocoa/ScintillaView.mm +++ b/cocoa/ScintillaView.mm @@ -383,13 +383,7 @@ static NSCursor *cursorFromEnum(Window::Cursor cursor)  		// Its replacing a non-existent position so do nothing.  		return; -	if (replacementRange.length > 0) -	{ -		[ScintillaView directCall: mOwner -				  message: SCI_DELETERANGE -				   wParam: replacementRange.location -				   lParam: replacementRange.length]; -	} +    [mOwner deleteRange: replacementRange];  	NSString* newText = @"";  	if ([aString isKindOfClass:[NSString class]]) @@ -459,13 +453,7 @@ static NSCursor *cursorFromEnum(Window::Cursor cursor)      mOwner.backend->SelectOnlyMainSelection();    } -  if (replacementRange.length > 0) -  { -    [ScintillaView directCall: mOwner -		      message: SCI_DELETERANGE -		       wParam: replacementRange.location -		       lParam: replacementRange.length]; -  } +  [mOwner deleteRange: replacementRange];    // Note: Scintilla internally works almost always with bytes instead chars, so we need to take    //       this into account when determining selection ranges and such. @@ -532,11 +520,8 @@ static NSCursor *cursorFromEnum(Window::Cursor cursor)    if (mMarkedTextRange.length > 0)    {      // We have already marked text. Replace that. -    [mOwner setGeneralProperty: SCI_SETSELECTIONSTART -                     value: mMarkedTextRange.location]; -    [mOwner setGeneralProperty: SCI_SETSELECTIONEND -                     value: mMarkedTextRange.location + mMarkedTextRange.length]; -    mOwner.backend->InsertText(@""); +    [mOwner deleteRange: mMarkedTextRange]; +      mMarkedTextRange = NSMakeRange(NSNotFound, 0);      // Reenable undo action collection, after we are done with text composition. @@ -1254,6 +1239,19 @@ static NSCursor *cursorFromEnum(Window::Cursor cursor)  //--------------------------------------------------------------------------------------------------  /** + * Delete a range from the document. + */ +- (void) deleteRange: (NSRange) aRange +{ +    if (aRange.length > 0) +    { +        [self message: SCI_DELETERANGE wParam: aRange.location lParam: aRange.length]; +    } +} + +//-------------------------------------------------------------------------------------------------- + +/**   * Getter for the current text in raw form (no formatting information included).   * If there is no text available an empty string is returned.   */ | 
