aboutsummaryrefslogtreecommitdiffhomepage
path: root/gtk/ScintillaGTKAccessible.cxx
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2017-03-04 09:10:34 +1100
committerNeil <nyamatongwe@gmail.com>2017-03-04 09:10:34 +1100
commit473c509aaa3dde5967784001c4f44c7192c28d8f (patch)
tree097b7da3354a5e8982ebd5fb23b1ef73a0f0c8a1 /gtk/ScintillaGTKAccessible.cxx
parentd05b0dd5c0f8699be23975b950e4d0cb2d228795 (diff)
parentbc31bdeb3b5437171af42ef2921f9bb7080b3b64 (diff)
downloadscintilla-mirror-473c509aaa3dde5967784001c4f44c7192c28d8f.tar.gz
Merge Windows and GTK+ changes.
Diffstat (limited to 'gtk/ScintillaGTKAccessible.cxx')
-rw-r--r--gtk/ScintillaGTKAccessible.cxx7
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);