diff options
| author | nyamatongwe <nyamatongwe@gmail.com> | 2013-04-17 13:25:30 +1000 | 
|---|---|---|
| committer | nyamatongwe <nyamatongwe@gmail.com> | 2013-04-17 13:25:30 +1000 | 
| commit | c597bc3b2ad86c3a6f2e0848a69df9d5060deb41 (patch) | |
| tree | f022430c5bf47e8a1f5ac820bf86299735a88a20 | |
| parent | 6e7d78f6421100f2ed96b262d5fde3b7f84045df (diff) | |
| download | scintilla-mirror-c597bc3b2ad86c3a6f2e0848a69df9d5060deb41.tar.gz | |
Implement firstRectForCharacterRange so that composition popups appear near insertion.
| -rw-r--r-- | cocoa/ScintillaView.mm | 31 | 
1 files changed, 28 insertions, 3 deletions
| diff --git a/cocoa/ScintillaView.mm b/cocoa/ScintillaView.mm index 0b8fddf56..e01a2bf40 100644 --- a/cocoa/ScintillaView.mm +++ b/cocoa/ScintillaView.mm @@ -324,9 +324,34 @@ static NSCursor *cursorFromEnum(Window::Cursor cursor)  //-------------------------------------------------------------------------------------------------- -- (NSRect) firstRectForCharacterRange: (NSRange) range -{ -  return NSZeroRect; +- (NSRect) firstRectForCharacterRange: (NSRange) aRange +{ +  NSRect rect; +  rect.origin.x = [ScintillaView directCall: mOwner +				    message: SCI_POINTXFROMPOSITION +				     wParam: 0 +				     lParam: aRange.location]; +  rect.origin.y = [ScintillaView directCall: mOwner +				    message: SCI_POINTYFROMPOSITION +				     wParam: 0 +				     lParam: aRange.location]; +  int rangeEnd = aRange.location + aRange.length; +  rect.size.width = [ScintillaView directCall: mOwner +				      message: SCI_POINTXFROMPOSITION +				       wParam: 0 +				       lParam: rangeEnd] - rect.origin.x; +  rect.size.height = [ScintillaView directCall: mOwner +				       message: SCI_POINTYFROMPOSITION +					wParam: 0 +					lParam: rangeEnd] - rect.origin.y; +  rect.size.height += [ScintillaView directCall: mOwner +					message: SCI_TEXTHEIGHT +					 wParam: 0 +					 lParam: 0]; +  rect = [[[self superview] superview] convertRect:rect toView:nil]; +  rect = [self.window convertRectToScreen:rect]; +   +  return rect;  }  //-------------------------------------------------------------------------------------------------- | 
