diff options
| author | Neil <nyamatongwe@gmail.com> | 2017-03-04 09:10:34 +1100 |
|---|---|---|
| committer | Neil <nyamatongwe@gmail.com> | 2017-03-04 09:10:34 +1100 |
| commit | 473c509aaa3dde5967784001c4f44c7192c28d8f (patch) | |
| tree | 097b7da3354a5e8982ebd5fb23b1ef73a0f0c8a1 /gtk/ScintillaGTKAccessible.cxx | |
| parent | d05b0dd5c0f8699be23975b950e4d0cb2d228795 (diff) | |
| parent | bc31bdeb3b5437171af42ef2921f9bb7080b3b64 (diff) | |
| download | scintilla-mirror-473c509aaa3dde5967784001c4f44c7192c28d8f.tar.gz | |
Merge Windows and GTK+ changes.
Diffstat (limited to 'gtk/ScintillaGTKAccessible.cxx')
| -rw-r--r-- | gtk/ScintillaGTKAccessible.cxx | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gtk/ScintillaGTKAccessible.cxx b/gtk/ScintillaGTKAccessible.cxx index 948b19575..11966bf20 100644 --- a/gtk/ScintillaGTKAccessible.cxx +++ b/gtk/ScintillaGTKAccessible.cxx @@ -856,6 +856,13 @@ void ScintillaGTKAccessible::NotifyReadOnly() { void ScintillaGTKAccessible::Notify(GtkWidget *, gint, SCNotification *nt) { switch (nt->nmhdr.code) { case SCN_MODIFIED: { + if (nt->modificationType & (SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT)) { + // invalidate character offset cache if applicable + const Position line = sci->pdoc->LineFromPosition(nt->position); + if (character_offsets.size() > static_cast<size_t>(line + 1)) { + character_offsets.resize(line + 1); + } + } if (nt->modificationType & SC_MOD_INSERTTEXT) { int startChar = CharacterOffsetFromByteOffset(nt->position); int lengthChar = sci->pdoc->CountCharacters(nt->position, nt->position + nt->length); |
