Tab hover card changes window order
Categories
(Firefox :: Tabbed Browser, defect)
Tracking
()
People
(Reporter: julianwels, Assigned: mossop)
References
(Blocks 1 open bug)
Details
Attachments
(4 files)
Hello!
STR:
- In Nightly on macOS set
browser.tabs.cardPreview.enabled
totrue
- Open two windows and position them in a way that they overlap and the tab strip of the partially covered window is still visible
- On the window that is covered by the other, hover over a tab until the tab preview appears.
(the video makes it a lot clearer I think)
Expected result:
The tab preview appears, but the window is still covered by the other window.
Actual result:
The window where the tab preview shows up is being moved on top of all others.
Updated•4 months ago
|
Comment 1•4 months ago
|
||
If you apply the patch in bug 1875143, is this still reproducible?
Updated•4 months ago
|
Updated•4 months ago
|
Comment 2•4 months ago
|
||
Just tested myself. Yes, it's still reproducible with 1875143 applied.
Comment 3•4 months ago
|
||
Bug 1875553 offers a potential solution, which is not to show the tabpreview for backgrounded windows.
Reporter | ||
Comment 4•4 months ago
•
|
||
Yeah, I can still reproduce it with that patch applied :(
Sorry
Edit: oops, sorry did not see you already tested
Comment 5•4 months ago
|
||
For me the preview seems to steal focus from any other application window, not just Firefox windows.
Assignee | ||
Comment 7•4 months ago
|
||
(In reply to Paul Zühlcke [:pbz] from comment #5)
For me the preview seems to steal focus from any other application window, not just Firefox windows.
Yes me too, I'm probably going to disable the feature for the time being because its so annoying.
Comment 8•3 months ago
|
||
Is S3 accurate if people end up using about:config to disable the feature? It feels like something that'd block shipping this.
Assignee | ||
Comment 9•3 months ago
|
||
The panel isn't an arrow panel and the standard popup positioning appears to
work fine. It also seems that something about the arrow positioning logic
causes background windows to raise.
Updated•3 months ago
|
Comment 10•3 months ago
|
||
Pushed by dtownsend@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a5f3b98b5997 Don't use arrow positioning for the tab preview panel. r=tabbrowser-reviewers,dao
Comment 11•3 months ago
|
||
Backed out for causing mochitests failures in browser_tab_preview.js
- Backout link
- Push with failures
- Failure Log
- Failure line: TEST-UNEXPECTED-FAIL | browser/base/content/test/tabs/browser_tab_preview.js | Test timed out -
Comment 12•3 months ago
|
||
Pushed by dtownsend@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1887aa693fdc Don't use arrow positioning for the tab preview panel. r=tabbrowser-reviewers,dao
Comment 13•3 months ago
|
||
bugherder |
Comment 14•3 months ago
|
||
I used the build from treeherder that has the fix and I can see that its not fixed completely. If using the steps from comment 0 it reproduces instantly when hovering over one tab from background but if you use the interaction between Firefox and another program (Firefox in background and your focus in another program), one must hover over the tabs in Firefox a couple of times until the focus jumps to Firefox (this is kind of intermittently reproducible). I tried this with a trackpad and mouse on MacOS 13 and macOS 14.
Reopening the bug based on the above.
Updated•3 months ago
|
Updated•3 months ago
|
Assignee | ||
Updated•3 months ago
|
Assignee | ||
Comment 15•3 months ago
|
||
I've narrowed the problem down to this call to orderFront
. It appears to be being called on the popup but it brings the main window to the front, presumably because it is a parent of the popup or something? I'm not really sure if the call is needed, commenting it out doesn't appear to break popups in any way that I can see.
Markus, do you know what this orderFront
call is meant to be for or if we could maybe skip it in this case somehow?
Comment 16•3 months ago
|
||
(In reply to Dave Townsend [:mossop] from comment #15)
I've narrowed the problem down to this call to
orderFront
. It appears to be being called on the popup but it brings the main window to the front, presumably because it is a parent of the popup or something?
That sounds likely - specifically the parent window part.
Which exact call to orderFront
are you referring to?
Also, does this have to be a panel or could it be a position:fixed element inside the main browser window? In Chrome the tab tooltip never extends beyond the main window's bounds, so I don't think it would need to extend beyond the browser window in Firefox.
Assignee | ||
Comment 17•3 months ago
|
||
(In reply to Markus Stange [:mstange] from comment #16)
(In reply to Dave Townsend [:mossop] from comment #15)
I've narrowed the problem down to this call to
orderFront
. It appears to be being called on the popup but it brings the main window to the front, presumably because it is a parent of the popup or something?That sounds likely - specifically the parent window part.
Which exact call to
orderFront
are you referring to?
Sorry, meant to link to that: https://searchfox.org/mozilla-central/source/widget/cocoa/nsCocoaWindow.mm#942
Also, does this have to be a panel or could it be a position:fixed element inside the main browser window? In Chrome the tab tooltip never extends beyond the main window's bounds, so I don't think it would need to extend beyond the browser window in Firefox.
I'm not sure.
Comment 18•3 months ago
|
||
(In reply to Markus Stange [:mstange] from comment #16)
Also, does this have to be a panel or could it be a position:fixed element inside the main browser window? In Chrome the tab tooltip never extends beyond the main window's bounds, so I don't think it would need to extend beyond the browser window in Firefox.
There was some discussion in the revision comments that moved us away from that. In short there were some alignment and layering problems with the UI that are probably fixable, but using a panel made them irrelevant. Since this is a dialog-like element, I think it ideally it should remain as a panel.
Updated•3 months ago
|
Comment 19•2 months ago
|
||
(In reply to Dave Townsend [:mossop] from comment #15)
I've narrowed the problem down to this call to
orderFront
. It appears to be being called on the popup but it brings the main window to the front, presumably because it is a parent of the popup or something? I'm not really sure if the call is needed, commenting it out doesn't appear to break popups in any way that I can see.
Sorry I haven't yet had a chance to debug this. But in theory I would expect that you need at least one call to orderFront
so that the window becomes visible at all. It's possible that we can skip subsequent orderFront
calls if we know that the window is already visible. If removing that call doesn't break anything, then the next step would be to find out which orderFront
call makes the window visible to begin with, and then think about whether that's enough.
Assignee | ||
Comment 20•2 months ago
|
||
Currently for popup windows with a parent window call orderFront
and
addChildWindow
, both of which set the popups window level. It appears that
we only need one of these for the popup to appear correctly, using both for
some reason has the side effect of also raising the parent window above all
other application windows. This patch skips the orderFront
call when we are
also going to call addChildWindow
.
Also removed the now redundant comment about _setWindowNumber.
Comment 21•2 months ago
|
||
Pushed by dtownsend@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/87de8d00268a Only use one method to order popup windows. r=spohl
Comment 22•2 months ago
|
||
bugherder |
Updated•2 months ago
|
Comment 23•2 months ago
|
||
I am unable to reproduce this anymore with the latest Nightly 126.0a1 on my macOS 13 macbook, closing as verified fixed.
Description
•