aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--doc/ScintillaHistory.html5
-rw-r--r--src/Editor.cxx4
-rw-r--r--src/Editor.h1
-rw-r--r--win32/ScintillaWin.cxx5
4 files changed, 15 insertions, 0 deletions
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html
index eb8127af4..517d3ae6a 100644
--- a/doc/ScintillaHistory.html
+++ b/doc/ScintillaHistory.html
@@ -529,6 +529,11 @@
Fixed bug on Win32 that allowed resizing autocompletion from bottom when it was
located above the caret.
</li>
+ <li>
+ On Win32, when using a screen reader and selecting text using Shift+Arrow,
+ fix bug when scrolling made the caret stay at the same screen location
+ so the screen reader did not speak the added or removed selection.
+ </li>
</ul>
<h3>
<a href="http://www.scintilla.org/scite365.zip">Release 3.6.5</a>
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 9a41bab09..125399622 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -828,6 +828,7 @@ void Editor::MovedCaret(SelectionPosition newPos, SelectionPosition previousPos,
}
ShowCaretAtCurrentPosition();
+ NotifyCaretMove();
ClaimSelection();
SetHoverIndicatorPosition(sel.MainCaret());
@@ -1437,6 +1438,9 @@ void Editor::InvalidateCaret() {
UpdateSystemCaret();
}
+void Editor::NotifyCaretMove() {
+}
+
void Editor::UpdateSystemCaret() {
}
diff --git a/src/Editor.h b/src/Editor.h
index c1545d34b..93a86fa39 100644
--- a/src/Editor.h
+++ b/src/Editor.h
@@ -365,6 +365,7 @@ protected: // ScintillaBase subclass needs access to much of Editor
void DropCaret();
void CaretSetPeriod(int period);
void InvalidateCaret();
+ virtual void NotifyCaretMove();
virtual void UpdateSystemCaret();
bool Wrapping() const;
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx
index 3c7cd45be..3ed249ca0 100644
--- a/win32/ScintillaWin.cxx
+++ b/win32/ScintillaWin.cxx
@@ -325,6 +325,7 @@ class ScintillaWin :
virtual void SetTrackMouseLeaveEvent(bool on);
virtual bool PaintContains(PRectangle rc);
virtual void ScrollText(int linesToMove);
+ virtual void NotifyCaretMove();
virtual void UpdateSystemCaret();
virtual void SetVerticalScrollPos();
virtual void SetHorizontalScrollPos();
@@ -1838,6 +1839,10 @@ void ScintillaWin::ScrollText(int /* linesToMove */) {
UpdateSystemCaret();
}
+void ScintillaWin::NotifyCaretMove() {
+ NotifyWinEvent(EVENT_OBJECT_LOCATIONCHANGE, MainHWND(), OBJID_CARET, CHILDID_SELF);
+}
+
void ScintillaWin::UpdateSystemCaret() {
if (hasFocus) {
if (HasCaretSizeChanged()) {