diff --git a/modules/juce_gui_basics/native/accessibility/juce_AccessibilityTextHelpers.h b/modules/juce_gui_basics/native/accessibility/juce_AccessibilityTextHelpers.h index a519fd323d..96e4a6df2b 100644 --- a/modules/juce_gui_basics/native/accessibility/juce_AccessibilityTextHelpers.h +++ b/modules/juce_gui_basics/native/accessibility/juce_AccessibilityTextHelpers.h @@ -49,13 +49,12 @@ namespace AccessibilityTextHelpers { const auto numCharacters = textInterface.getTotalNumCharacters(); const auto isForwards = (direction == Direction::forwards); - - const auto offsetWithDirecton = [isForwards] (int input) { return isForwards ? input : -input; }; + const auto offsetWithDirection = [isForwards] (auto num) { return isForwards ? num : -num; }; switch (boundary) { case BoundaryType::character: - return jlimit (0, numCharacters, isForwards ? currentPosition + 1 : currentPosition); + return jlimit (0, numCharacters, currentPosition + offsetWithDirection (1)); case BoundaryType::word: case BoundaryType::line: @@ -96,7 +95,7 @@ namespace AccessibilityTextHelpers auto tokens = (boundary == BoundaryType::line ? StringArray::fromLines (text) : StringArray::fromTokens (text, false)); - return currentPosition + offsetWithDirecton (tokens[0].length()); + return currentPosition + offsetWithDirection (tokens[0].length()); } case BoundaryType::document: diff --git a/modules/juce_gui_basics/native/accessibility/juce_win32_UIATextProvider.h b/modules/juce_gui_basics/native/accessibility/juce_win32_UIATextProvider.h index 9111e3064b..13acd81747 100644 --- a/modules/juce_gui_basics/native/accessibility/juce_win32_UIATextProvider.h +++ b/modules/juce_gui_basics/native/accessibility/juce_win32_UIATextProvider.h @@ -248,7 +248,9 @@ private: { const auto boundaryType = getBoundaryType (unit); - const auto start = AccessibilityTextHelpers::findTextBoundary (*textInterface, + const auto start = unit == ComTypes::TextUnit::TextUnit_Character + ? selectionRange.getStart() + : AccessibilityTextHelpers::findTextBoundary (*textInterface, selectionRange.getStart(), boundaryType, AccessibilityTextHelpers::Direction::backwards);