void CFLTKEditor::Paste() { string sText, sNewText; int iInsStart = 0, iInsEnd = 0; Fl_Text_Editor *pEditor = GetEditor(); Fl_Text_Buffer *pBuffer = pEditor->buffer(); pBuffer->selection_position(&iInsStart, &iInsEnd); if (iInsStart == iInsEnd) { iInsStart = pEditor->insert_position(); Fl_Text_Editor::kf_paste(0, pEditor); iInsEnd = pEditor->insert_position(); } else { Fl_Text_Editor::kf_paste(0, pEditor); iInsEnd = pEditor->insert_position(); } pBuffer->select(iInsStart, iInsEnd); sText = pBuffer->selection_text(); if (AdaptText(sNewText, sText)) { pBuffer->replace_selection(sNewText.c_str()); } pBuffer->unselect(); }