diff options
| -rw-r--r-- | doc/ScintillaHistory.html | 5 | ||||
| -rw-r--r-- | src/Editor.cxx | 4 | ||||
| -rw-r--r-- | src/Editor.h | 1 | ||||
| -rw-r--r-- | win32/ScintillaWin.cxx | 5 | 
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()) { | 
