Closed Bug 757368 Opened 12 years ago Closed 12 years ago

moving the caret with arrow keys don't work any more in editor if a floating panel contains a focusable element

Categories

(Core :: DOM: Editor, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: glazou, Assigned: neil)

References

Details

(Keywords: regression)

Attachments

(1 file, 1 obsolete file)

This bug is a regression introduced by fix for bug 669026 (verified on OS X
between revision ede336ccaed0 - working - and revision 4d0391866459 - failing).

If I launch BlueGriffon 1.4 and create a blank document, type
a few chars and open the CSS Properties panel (that is a XUL floating panel),
using the left arrow to move the caret works fine in the editor.
If I do the same with BlueGriffon 1.4.1 or even more recent (fix for the
bug 669026 is in), then the first menulist in my CSS Properties panel acquires
the focus when the left arrow key is pressed and the editor loses the focus! I
have a lot of users' feedback about this, and this is bad enough to trigger a
new minor version of BlueGriffon with a fix for that wrong behaviour.
Blocks: 669026
Bug confirmed on Windows (XP, 7, 8preview) and Linux.
http://mxr.mozilla.org/comm-central/source/mozilla/dom/base/nsFocusManager.cpp#2436
// if there is no focus, yet a panel is open, focus the first item in
// the panel
Attached patch Possible patch (-w) (obsolete) — Splinter Review
I'm not sure what this code is trying to achieve, otherwise I'd remove it ;-)
Attachment #626392 - Flags: feedback?(enndeakin)
That code is needed so that pressing tab when a panel is open cycles into the panel itself. This patch seems to make it so that navigation into the panel isn't possible.

From the bug description above, it seems that DetermineElementToMoveFocus is being called with MOVEFOCUS_CARET. If that's the case, the popup checking step could just be skipped.
(In reply to Neil Deakin from comment #4)

> That code is needed so that pressing tab when a panel is open cycles into
> the panel itself. This patch seems to make it so that navigation into the
> panel isn't possible.

I have just tested Neil's patch in BlueGriffon:

  1. it solves the bug
  2. cycling into a panel still works as usual if the focus is already in the
     panel

Were you saying that if the focus is in the last tabbable element in the main
window, a tab should switch to the first available panel containing a tabbable
element?
Attached patch Proposed patchSplinter Review
Sure, that seems to work too.
Attachment #626392 - Attachment is obsolete: true
Attachment #626392 - Flags: feedback?(enndeakin)
Attachment #626441 - Flags: review?(enndeakin)
Attachment #626441 - Flags: review?(enndeakin) → review+
Pushed mozilla-central changeset f6d082275253.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: