[[BackLinksMenu]]

[[TicketQuery(summary=TEXT_STABLE_SELECTION_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]]

= Analysis =
== Overview ==

Text select - 
 * Text selection is done by 
  * clicking and dragging on text
  * double clicking on a word (selects the whole word)
  * shift + left (right) arrow select text in desired position (one character). On up/down the text is selected to the same position on the previous/next line if there is text on it or to the end of the line otherwise
 * Should highlight text (with inversed colors)
 * Should apply style to selection only. If nothing is selected, should apply styles from cursor position to the next character which has own style.
 * Text selection should be draggable
 * Multi select - multi select is done by selecting another part of the text with pressed ctrl key.
 * Cursor position is local for non-chained frames. Selection should be kept for each different frame (cursor position - too)
 * Text select in Preview mode, Presentation mode and Reader app
  * Cursor position is kept, but the carriage is not shown. This allows selecting text by shift+arrow, the behavior is the same as in the author app
  * Note that arrows without shift should only scroll and not change the carriage (cursor position)
== Task requirements ==
 * Add select support for text frames
 * Clicking on a position with mouse sets the carriage to this position. Position is saved.
 * Double clicking on a word selects the whole word
 * shift + left (right) arrow select text in desired position (one character).
 * Should highlight text (with inversed colors)
 * Should apply style to selection only. If nothing is selected, should apply styles from cursor position to the following non-existing character.
 * Multi select - multi select is done by selecting another part of the text with pressed ctrl key. (optional - if we have time)

== Task result ==
^(List the end product of the task (for example "Source code", "Wiki page", etc.))^

== Implementation idea ==
^(Provide some rough implementation idea(s).)^

== Related ==
^(Add links to related tasks that could be useful or helpful.)^

== How to demo ==
^(Provide instructions for demonstration of the task.)^

= Design =
^(Describe your design here.)^

= Implementation =
^(Describe and link the implementation results here (from the wiki or the repository).)^

= Testing =
^(Place the testing results here.)^

= Comments =
^(Write comments for this or later revisions here.)