Open Bug 522035 Opened 15 years ago Updated 2 years ago

Investigate alternate behaviors for Aero Peek

Categories

(Firefox :: General, defect)

x86
Windows 7
defect

Tracking

()

People

(Reporter: benjamin, Unassigned)

References

(Blocks 1 open bug)

Details

Attachments

(9 files, 2 obsolete files)

I can't switch to some Firefox windows from the new aero peek taskbar menu. It gives you a list of recent tabs to choose from, in some order I haven't figured out (maybe most-recently-used?). If you only have a few tabs, I guess this is ok, but I typically have 20+ tabs grouped into multiple windows, e.g.

* a window for e10s stuff
* a window for general stuff and mail
* a window for reviews
* a window for my current coding task

The new context menu works really poorly for me now: I just want to switch to my reviews window, which now doesn't even appear on the list because I haven't used it recently. I'd like to request that there be an entry for each of the currently open windows, and then also, if there's room remaining, entries for specific tabs within the windows. That way switching to a window is at least possible.
For Aero Peek, there is a soft cap of 20 previews (pref is browser.taskbar.previews.max) that we intend to tune. There is no notion of recent windows. We have limited control over the ordering but the tabs will appear in the correct ordering (that is, left to right) and the actual positions are determined by the time that we made the preview. This means that the tabs are grouped at startup by window, but as you open more windows/tabs, they will be grouped by time.

That said, we can make a "tab" preview for each window. The drawing code is essentially already written in PreviewController.drawPreview and the behavior won't be too difficult to hook up.
OS: Windows NT → Windows 7
I was about to file a bug for this.  I think the previews should always show most of the windows that are opened.  This is going to be hard for me to explain but I'll give it a shot.  I'll use a soft cap of 5 previews for this example.

Here is how I believe this should be:
One window and five tabs -> five previews, one of each tab
Two windows, first window focused with four tabs -> all four of focused windows tabs should have previews...fifth preview is of the active tab in the second window
Three windows, first window focused with four tabs -> three of the focused windows tabs should have previews...forth and fifth preview is of the active tabs in the second and third windows.

So basically.  All windows should have a preview of their active tabs in the task bar previews.  The focused or last focused window's tabs should fill up as many previews minus the number of opened windows until the five previews are filled.
Version: unspecified → Trunk
I completely forgot about this because I have it turned off. Before we go around changing our UI, there is a setting in the Windows taskbar which does not group windows into a single button so you can select individual windows from the taskbar if you disable that. Note that you will still get the individual previews above the taskbar.
That sounds like a bad tradeoff: why would I want a separate taskbar item for each Firefox window just to solve this bug?
Keywords: uiwanted
I'd suggest the following changes to our default setting:

1) when there is just one window open, display as we do now, except, the foreground tab is displayed as an application preview, rather than a tab preview. 

2) when we have multiple windows with fewer than say 15 tabs total, all tabs are displayed. The foreground tab for a window is displayed as an application preview, background tabs are displayed as tab previews. Application previews should be listed first in the list.

3) when we have multiple windows with more than 15 tabs, we apply rule #2 and fill the end of the list with as many recent tabs as we can. 

we could also provide other scenarios based on a display pref, depending on what people request.
(In reply to comment #5)
> I'd suggest the following changes to our default setting:
> 
> 1) when there is just one window open, display as we do now, except, the
> foreground tab is displayed as an application preview, rather than a tab
> preview.

So rather than show the content of the tab in the thumbnail, we show the contents of the window? That seems less useful to me. Otherwise this should be the same for the live preview.

> 2) when we have multiple windows with fewer than say 15 tabs total, all tabs
> are displayed. The foreground tab for a window is displayed as an application
> preview, background tabs are displayed as tab previews. Application previews
> should be listed first in the list.

This breaks up the contents of a window in a way that greatly disturbs the workflow of users who group related items spatially (commonly by window).

> 
> 3) when we have multiple windows with more than 15 tabs, we apply rule #2 and
> fill the end of the list with as many recent tabs as we can.

What do you mean by "end of the list"? We don't have a supported way to accurately know how many thumbnails will fit on the screen.
 
> we could also provide other scenarios based on a display pref, depending on
> what people request.

Yes, this may be the best option. I am not sure there is a single behavior that works well for all users.
What I think we need to solve here is the window identification problem. See attached screen cap. This has two windows, each with a foreground tab, both minimized on the tray. The arrows show the two tabs that are foreground. I was suggestion that we render these two differently. Whether that's by rendering their chrome (indicating, 'this is a window') or by applying some other treatment, like an icon of some sort, or a hue color, or whatever.

Moving these two to the left side seems fine to me. we break the ordering, but users would become accustom to seeing all the base windows on the left, and remaining tabs on the right. Although in test here, I've noticed windows give preference to windows, so they don't fall off the deck, so one of my main concerns (losing windows) can't happen.
Attached image two windows
(In reply to comment #7)
> Moving these two to the left side seems fine to me. we break the ordering, but
> users would become accustom to seeing all the base windows on the left, and
> remaining tabs on the right.

Personally, since i use this feature from some time, i'd find it extremely confusing to mix tabs of a window with tabs of another window, the same way i find confusing power switches in my computer's room (they are mixed up) and i keep switching on the wrong light. I guess this is what will happen mixing up previews. The current ordering is awesome, it's just hard to see where a window starts and ends, a grouping border would be the best bet imo.
Personally I miss having the ability to simply click on the Firefox icon in the taskbar to bring my Firefox window back to the foreground, with whatever tab was current still visible. Right now clicking on the taskbar icon just toggles the previews, but so does hovering the icon. Is that something we can control, or is this just a crummy design decision in Windows 7?
Ted, control-click will activate the app. Luckily apps can't change it AFAIK.
Alex, can we get some ui feedback on this? Generally people seem to like the way tabs are ordered (they should match the same order as the tabs in the browser). When you have two windows open, the first window and it's tabs come first in the list, and the second and subsequent windows follow. The idea here is to create some sort of visual indicator for the first tab in each window. (See attached screen shot for why this is an issue.) I was thinking some sort of window icon drawn in the corner of the tab might suffice.
Having a little bit of extra padding separating the tabs between two windows and introducing an etch on the glass should work well.  If we tag the first tab of each window we sort of indicate those particular tabs are special where really we just want to represent that this set is comprised of two (or more) groups.
(In reply to comment #13)
> Having a little bit of extra padding separating the tabs between two windows

We don't have control over this.

> and introducing an etch on the glass should work well.

Is this really visible on most previews?

> If we tag the first tab
> of each window we sort of indicate those particular tabs are special where
> really we just want to represent that this set is comprised of two (or more)
> groups.

I'm not sure how we could mark the tabs as a group. We could perhaps draw a solid 1px border around each preview where the color of the border indicates the window grouping.
Here is a proposal for visually grouping two sets of tabs
(In reply to comment #15)
> Created an attachment (id=439448) [details]
> Mockup of two windows in aero peak
> 
> Here is a proposal for visually grouping two sets of tabs

That's perfect but unfortunately we don't have that kind of control yet over the taskbar preview display. The apis are still pretty basic - 

http://msdn.microsoft.com/en-us/library/dd562040(v=VS.85).aspx

So we need to work with the previews themselves, and come up with some sort of treatment there.
Ok, so what area can we draw to?
(In reply to comment #17)
> Ok, so what area can we draw to?

We have full control over the thumbnail's aspect ratio and contents (it is expected to be a rectangle though I think) but not the padding or presence of the close button. Essentially we get a 200x120 area to draw however we please and that's where the thumbnail contents come from.
Ok, so theoretically could the first thumbnail in the second window have a wider aspect ratio, a normal sized thumbnail, and an etch and transparent area on the left side? :)
what about having the first tab in the window bigger, and other tabs smaller? The remaining space above the thumb could be used for some colored indication (otherwise a colored glow that is transparent for the first window, colored for next ones, so color is the grouping, but the glow blends with aero color)

Still, when the graphical representation changes to the textual one (after 13 or 14 thumbs), which kind of control do we have? recognizing windows is hard there too
Summary: [win7] can't switch to windows from taskbar menu (aero peek) → Investigate alternate behaviors for Aero Peek
Blocks: cuts-os
Inspired by this latest mockup I did a PoC for something similar: all windows would start in window preview mode, with a button below the previews that when clicked would switch it to tab preview mode. This way, clicking on the thumbnail would just immediately switch it to the window, and clicking on the button shows all the tabs.

Here is a clip of it in action:
http://flic.kr/p/85sLcZ
Felipe, I love that idea, so we could have 3 modes: windows, tabs, or hierarchic-tabs. But iirc the buttons can just be media buttons, or we can personalize the glyphs? How does textual only mode work?
hm, nvm, I've seen the icon is customizeable, awesome.
Yeah, we can set the icons and tooltips, but not change their size or format.

If there are too many tabs such that it'd require the text list, Windows doesn't make a smooth transition like this one, which is disappointing. It just hides the preview panel and it will be on textual mode the next the taskbar icon is clicked.
Felipe: with your PoC, does clicking on the window preview just take you right to the active tab in that window? Because that's exactly the behavior I would want.
Here is mockup that show you what I mean.
See previous comment
Attachment #447965 - Attachment is obsolete: true
(In reply to comment #28)
> Felipe: with your PoC, does clicking on the window preview just take you right
> to the active tab in that window?

You can still CTRL+click on the taskbar icon to get the same behavior, this is an OS level shortcut. Btw from what I got Felipe is switching just modes, thus when you're in window preview mode it will go to the active tab.
s/you can still/you can already/
Yeah Mak is right, when we're in window preview mode (not expanding it to tab previews), clicking on the preview just takes that window back to front, without any tab switching, thus showing the active tab on that window.
Attached patch PoC patch v1Splinter Review
I'm posting the current PoC as a patch so anyone who wants to try using FF with this behavior can apply the patch and rebuild browser/components/wintaskbar.

The patch doesn't yet preserve the tab ordering correctly in all situations, but should work on some. At the very least the tabs from the same window should remain grouped together.

After you expand a window to tab previews, the tabs will be regrouped in a single window after 30 seconds. The rationale is that the user would have time to switch to various tabs if he's searching for something, and it's regrouped together later to go back into the quick "switch to window" behavior.

It also moves the threshold of disabling tab previews from 20 global previews to 10 previews/window.
Depends on: 616720
Attached image identifying windows (obsolete) —
A slight variation on the window segmenting we originally wanted. Basically, paint the chrome for the foreground tab, and just the content for background tabs. This also helps organizes tab previews into window groups.

Thoughts?
Simplified down, this paints the chrome on the first tab so that windows are segregated in the previews panel. This doesn't apply any special treatment to active tabs.
Attachment #495490 - Flags: ui-review?(faaborg)
Attachment #495281 - Attachment is obsolete: true
Comment on attachment 495490 [details]
example of 495489 changes

pretty subtle, but it is native to include chrome in these previews.  I fine with us making this change, but overall I'm still in favor of the approach proposed in bug 605338
Attachment #495490 - Flags: ui-review?(faaborg) → ui-review+
(In reply to comment #38)
> Comment on attachment 495490 [details]
> example of 495489 changes
> 
> pretty subtle, but it is native to include chrome in these previews.  I fine
> with us making this change, but overall I'm still in favor of the approach
> proposed in bug 605338

These and some additional changes I'm working on (see felipe's poc for an example) are independent of whether we turn it off by default or not. I'm trying to improve this for people who enable the feature.
Blocks: 581726
Attached patch poc variationSplinter Review
This is a variation on felipe's original work. Basically, after reaching a certain number of previews, only one window is displayed completely at any time. The rest are compacted down into a single window preview. You can expand each group using a button under the window preview.

This still feels a little clunky, because:

1) you can't place buttons under tab previews, giving the user the option of expanding and contracting tab sets.
2) we have no control over the order window previews. windows manages this completely. so window order can get mixed up.
3) it adds complexity to user action when interacting with coalesced tab sets.
4) the buttons are hard to interact with. Hovering over previews to get to the buttons can bring up live previews, which can be distracting.

Shell Integration is for default browser code so moving to general.

Component: Shell Integration → General
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: