nvda
590fb4d1 - Only reorder rtl/ltr runs in a line from displayModels up to Window boundaries. I.e. text from separate windows that happen to appear on the same line is never reordered relative to the text in other windows.

Commit
12 years ago
Only reorder rtl/ltr runs in a line from displayModels up to Window boundaries. I.e. text from separate windows that happen to appear on the same line is never reordered relative to the text in other windows. This fixes the issue where labels in Windows Explorer file properties dialog were being read after date/times if date/time is set to Arabic. Of course in a true Arabic UI there may be labels that should be read first but are positioned on the right, but this change at least would allow us in future to configure this easier. At a fundermental level though, NVDA should only reorder text, not reorder controls and Windows. Specific changes: * displayModelChunk_t: add a hwnd member. * displayModel_t: allow construction with an optional hwnd argument. This hwnd is stored on the instance for use in later chunk insertions. * displayModel_t::insertChunk: after inserting the chunk in to the XY map, update the chunks' hwnd member if this displayModel has a valid (non-0) hwnd. * gdiHooks: when creating a displayModel specifically for a window, provide the window handle to the displayModel as its hwnd so that it is aware of it. displayModel.py: rather than calling processFieldsAndRectsReadingDirection directly for each line of displayModel text, instead call a new function, processWindowChunksInLine, which calls processFieldsAndRectsReadingDirection separately for each lot of text in the line upto any window change.
Committer
Parents
Loading