The user makes a primary selection with mouse button 1. Pressing this button deselects any existing selection and moves the insertion cursor and the anchor to the position in the text where the button is pressed. Dragging while holding down mouse button 1 selects all text between the anchor and the pointer position, deselecting any text outside the range.
The text selected is influenced by the resource XmNeditPolicy, which can be set to XmEDIT_LOGICAL or XmEDIT_VISUAL. If the XmNeditPolicy is set to XmEDIT_LOGICAL and the text selected is bidirectional, the selected text is not contiguous visually and is a collection of segments. The text in the logical buffer does not have a one-to-one correspondence with the display.
As a result, the contiguous buffer of logical characters of bidirectional text is not rendered in a continuous stream of characters. Conversely, when the XmNeditPolicy is set to XmEDIT_VISUAL, the selected text can be contiguous visually but is segmented in the logical buffer. Therefore, the sequence of selection, deletion, and insertion of bidirectional text at the same cursor point does not result in the same string.