Closed
Bug 106123
Opened 23 years ago
Closed 23 years ago
Ctrl+Tab focuses hidden panes of tabbrowser
Categories
(Core :: DOM: UI Events & Focus Handling, defect)
Core
DOM: UI Events & Focus Handling
Tracking
()
VERIFIED
FIXED
mozilla1.0
People
(Reporter: bryner, Assigned: bryner)
References
Details
(Keywords: access, Whiteboard: [adt2 rtm][verified on trunk])
Attachments
(1 file, 3 obsolete files)
2.78 KB,
patch
|
john
:
review+
hewitt
:
superreview+
jud
:
approval+
|
Details | Diff | Splinter Review |
Ctrl+[Shift]+Tab incorrectly focuses the hidden panes when more than one
tabbrowser tab is open.
Comment 1•23 years ago
|
||
oh, is this what i described on 2001-10-18 17:38 in bug 104977?
Comment 2•23 years ago
|
||
feh, you said that already...what i get for not reading *all* the new bugmail in
a folder. ;)
Comment 3•23 years ago
|
||
*** This bug has been marked as a duplicate of 104602 ***
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → DUPLICATE
Comment 4•23 years ago
|
||
reopening, since i think bryner will be working on this.
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
Comment 5•23 years ago
|
||
*** Bug 104602 has been marked as a duplicate of this bug. ***
Assignee | ||
Updated•23 years ago
|
Status: REOPENED → ASSIGNED
Target Milestone: --- → mozilla0.9.8
Comment 7•23 years ago
|
||
*** Bug 126495 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 8•23 years ago
|
||
Nominating for nsbeta1, we'll first need to fix 124946 though.
Comment 9•23 years ago
|
||
nsbeta1+ per Nav triage team, adding access keyword
Comment 10•23 years ago
|
||
Please update this bug with an [adt1] - [adt3] impact rating (or take it off the
list if it doesn't even rate adt3.) Thanks!
Updated•23 years ago
|
Whiteboard: [adt2]
Assignee | ||
Comment 11•23 years ago
|
||
This patch does the following:
- any time we check to see if a docshell is "visible", we also check the
"type" attribute of the <browser> that we're in, and make sure it is
"content-primary"
- factor out the logic for getting at the content for a subshell into a helper
method
- remove some unused variable assignments
Assignee | ||
Comment 12•23 years ago
|
||
Comment on attachment 77998 [details] [diff] [review]
patch
This isn't quite right. New patch coming up soon.
Attachment #77998 -
Attachment is obsolete: true
Assignee | ||
Comment 13•23 years ago
|
||
Ok, this patch works, but I have a hard time believing there isn't an easier
way to do this. What I do here is walk up the document chain; for each
document I start at the frame for the content enclosing the subshell we're
coming from, walk up until I find a frame with a view, and walk up the view
chain, stopping if I find a hidden view. If no hidden views are found, it
continues up to the parent document. If we hit the top without finding any
hidden views, we go ahead and allow ctrl+tab to focus the document.
Comment 14•23 years ago
|
||
I can't believe we need that nastiness. Glad you were the one to write it, not me :)
We better put some comments in there, that explain the stages of what's
happening. With all of the variables and getters in there, it gets cumbersome to
understand. Some good comments at the beginning of each section would help, for
example // Get frame and prescontext for docshell, // Check all views in parent
chain for visibility, etc.
Shouldn't we be leaving this method alone, and fixing
nsIBaseWindow::GetVisibility() instead? It seems like the thing should be able
to tell us whether it's visible or not, through some interface.
Comment 15•23 years ago
|
||
Did you check with dbaron, or hyatt on this? Although I wouldn't say "there
*has* to be a better way", I would say "we should make a better way", by adding
the necessary methods to interfaces in the right places.
I think basic things like, whether an object is visible on screen, should be
supported by the object itself.
I don't know much about XUL. In HTML content instead of walking the view tree to
see if you an a hidden parent, you could just check the CSS "visibility" style
on your frame.
A time is coming when all subdocuments will be hooked together with their parent
documents into a single giant view tree. (All the work has been done, we're just
waiting to post-1.0 to throw the switch.) At that time you'll be able to take a
view and follow that view's parents up to the very root of the uber-view-tree,
checking visibility as you go, without all the subshelltreeitem etc goop.
Assignee | ||
Comment 17•23 years ago
|
||
Right, I believe the only reason this is necessary is because of the sneaky way
that nsDeckFrame hides its non-active panes, that is, by directly manipulating
view visibility of a single view rather than by changing CSS style. So, I'm
going on the assumption that (for now), this is actually the only way to do what
I want to do. New patch coming up (with comments) for review.
Assignee | ||
Comment 18•23 years ago
|
||
Ok, here it is. I decided to keep the check for nsIBaseWindow visibility, it
seems possible that there are embedding cases where this is our only indicator
that the document is hidden (and it's cheap to check).
Attachment #78016 -
Attachment is obsolete: true
Assignee | ||
Comment 19•23 years ago
|
||
cc'ing Adam for docshell input -- Adam, what do you think about moving these
additional visibility checks into nsDocShell::GetVisibility() ?
Assignee | ||
Comment 20•23 years ago
|
||
Same functionality, but I moved the logic into nsDocShell::GetVisibility.
Attachment #78417 -
Attachment is obsolete: true
Comment 21•23 years ago
|
||
Comment on attachment 78651 [details] [diff] [review]
patch to put the checking in docshell instead
r=jkeiser
Be aware that JST's iframe change in bug 52334 will change some of the
mechanics of this. Or rather, JST should be aware that he will have to change
the mechanics of this to fit his change :)
Attachment #78651 -
Flags: review+
Comment 22•23 years ago
|
||
Comment on attachment 78651 [details] [diff] [review]
patch to put the checking in docshell instead
sr=hewitt
Attachment #78651 -
Flags: superreview+
Assignee | ||
Comment 23•23 years ago
|
||
Checked in on the trunk.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago → 23 years ago
Resolution: --- → FIXED
Comment 24•23 years ago
|
||
Pls update the bug, when it has been tested on the trunk.
Comment 25•23 years ago
|
||
tested this using commercial trunk builds (2002.04.16) on linux rh7.2, win2k and
mac 10.1.3. so far, so good!
Comment 26•23 years ago
|
||
per adt we don't want to take this risk for beta, keep baking in the trunk.
Updated•23 years ago
|
Whiteboard: [adt2] → [adt2][verified on trunk]
Comment 27•23 years ago
|
||
According to lxr, the checkin for this bug added a printf
printf("rootView: dim=(%d,%d)\n", viewBounds.width, viewBounds.height);
to nsDocShell::GetVisibility. Was this intentional?
Updated•23 years ago
|
Whiteboard: [adt2][verified on trunk] → [adt2 rtm][verified on trunk]
Assignee | ||
Comment 28•23 years ago
|
||
Good catch. I just removed the printf.
Assignee | ||
Updated•23 years ago
|
Comment 29•23 years ago
|
||
adt1.0.1+ (on behalf ADT's behalf) for checkin to the 1.0 branch, pending
Driver's approval. Pls check this in asap.
Blocks: 143047
Comment 30•23 years ago
|
||
please checkin to the 1.0.1 branch. once there, remove the "mozilla1.0.1"
keyword and add the "fixed1.0.1" keyword.
Keywords: mozilla1.0.1 → mozilla1.0.1+
Updated•23 years ago
|
Attachment #78651 -
Flags: approval+
Assignee | ||
Comment 31•23 years ago
|
||
checked in on the 1.0 branch.
Keywords: mozilla1.0.1+ → fixed1.0.1
Comment 32•23 years ago
|
||
*** Bug 143995 has been marked as a duplicate of this bug. ***
Comment 33•23 years ago
|
||
tested ctrl+[shift]+tab and [shift]+F6 per the test in bug 104977 comment 4. all
looks well using comm branch builds (2002.06.13.0x) on linux rh7.2, mac 10.1.5
and win2k.
Status: RESOLVED → VERIFIED
Updated•23 years ago
|
Keywords: fixed1.0.1 → verified1.0.1
Updated•6 years ago
|
Component: Keyboard: Navigation → User events and focus handling
You need to log in
before you can comment on or make changes to this bug.
Description
•