diff options
-rw-r--r-- | cocoa/ScintillaView.h | 2 | ||||
-rw-r--r-- | cocoa/ScintillaView.mm | 36 |
2 files changed, 19 insertions, 19 deletions
diff --git a/cocoa/ScintillaView.h b/cocoa/ScintillaView.h index 51d60e9d5..b9b36201f 100644 --- a/cocoa/ScintillaView.h +++ b/cocoa/ScintillaView.h @@ -146,6 +146,8 @@ extern NSString *const SCIUpdateUINotification; - (NSString*) selectedString; +- (void) deleteRange: (NSRange) range; + - (void)setFontName: (NSString*) font size: (int) size bold: (BOOL) bold 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. */ |