Open Bug 462146 Opened 16 years ago Updated 2 years ago

using keyboard to move in text may move in the wrong way when selection exists

Categories

(Core :: DOM: UI Events & Focus Handling, defect)

x86
Linux
defect

Tracking

()

UNCONFIRMED

People

(Reporter: hramrach, Unassigned)

Details

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071618 Iceweasel/3.0.1 (Debian-3.0.1-1)
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071618 Iceweasel/3.0.1 (Debian-3.0.1-1)

When text is selected and the back arrow is pressed cursor appears after selection.

Actually Firefox remembers the position of the cursor when the selection was made (ie when the selection is made backwards moving forward does not work).

However, moving the cursor inside the selection is impossible so the cursor position is irrelevant while text is selected.

Reproducible: Always



Expected Results:  
cursor appears before selection when left arrow is pressed  and after the text when right arrow is pressed regardless of the way the selection was marked

the expected behaviour is the standard way of handling selection in many toolkits
Summary: moving back with keyboard while text is selected moves forward → using keyboard to move in text may move in the wrong way when selection exists
I'm confused.  Let's see if I understood what you did with an example;
say you have the text xxxxxxxxSELECTEDyyyyyyyyy and make a selection by
pressing the left mouse button between the D and the first y then dragging
to the left and releasing the mouse button between the S and the last x,
so you now have SELECTED selected.  Then you press the left-arrow key,
(which deselects everything, right?) and you say the cursor is now
positioned between the D and the first y.  Is that correct?
Severity: normal → minor
Component: General → Keyboard: Navigation
Product: Firefox → Core
QA Contact: general → keyboard.navigation
Ok, let me explain differently.

When text is selected the cursor is not visible and in sane toolkit the whole selection is the cursor so pressing either arrow moves you to either side of selection.

What mozilla does is it remembers where you placed the cursor to make the selection and moves this (now invisible) cursor when you press an arrow key.

This results in cursor unexpectedly moving inside what was the selected text by pressing an arrow key which does not happen in sane toolkits.

To describe with your sample text:

You drag from S to D to select the "SELECTED" text, press left arrow, and now cursor is between E and D, inside the "SELECTED" text which should not ever happen.

Note that this behaviour is required for key selection to work properly, you remember the hidden cursor position so taht if the user presses Shift+Left you know if you should unselect a character on the right or select one on the left. But pressing just Left should ignore this and just treat the selection as the cursor.

Thanks

Michal
Component: Keyboard: Navigation → User events and focus handling
Severity: minor → S4
You need to log in before you can comment on or make changes to this bug.