aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Editor.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r--src/Editor.cxx18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 10c694990..d85a4c294 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -711,6 +711,15 @@ void Editor::SetEmptySelection(Sci::Position currentPos_) {
SetEmptySelection(SelectionPosition(currentPos_));
}
+void Editor::SetSelectionFromSerialized(const char *serialized) {
+ if (serialized) {
+ sel = Selection(serialized);
+ sel.Truncate(pdoc->Length());
+ SetRectangularRange();
+ InvalidateStyleRedraw();
+ }
+}
+
void Editor::MultipleSelectAdd(AddNumber addNumber) {
if (SelectionEmpty() || !multipleSelection) {
// Select word at caret
@@ -8695,6 +8704,15 @@ sptr_t Editor::WndProc(Message iMessage, uptr_t wParam, sptr_t lParam) {
case Message::GetUndoSelectionHistory:
return static_cast<sptr_t>(undoSelectionHistoryOption);
+ case Message::SetSelectionSerialized:
+ SetSelectionFromSerialized(ConstCharPtrFromSPtr(lParam));
+ break;
+
+ case Message::GetSelectionSerialized: {
+ const std::string serialized = sel.ToString();
+ return BytesResult(lParam, serialized);
+ }
+
case Message::SetExtraAscent:
vs.extraAscent = static_cast<int>(wParam);
InvalidateStyleRedraw();