void SetVisibleCaretPosition (double x, double y, double nonPreeditX, double nonPreeditY)
{
if (x == caretX && y == caretY && this.nonPreeditX == nonPreeditX && this.nonPreeditY == nonPreeditY)
return;
caretX = x;
caretY = y;
this.nonPreeditX = nonPreeditX;
this.nonPreeditY = nonPreeditY;
GtkWorkarounds.SetImCursorLocation (
textEditor.IMContext,
textEditor.GdkWindow,
new Rectangle ((int)nonPreeditX, (int)nonPreeditY, 0, (int)(LineHeight - 1)));
}