Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quickpick should reflect when it has additional items #173851

Closed
joyceerhl opened this issue Feb 8, 2023 · 9 comments · Fixed by #176281
Closed

Quickpick should reflect when it has additional items #173851

joyceerhl opened this issue Feb 8, 2023 · 9 comments · Fixed by #176281
Assignees
Labels
feature-request Request for new features or functionality insiders-released Patch has been released in VS Code Insiders quick-pick Quick-pick widget issues verification-needed Verification of issue is requested verified Verification succeeded
Milestone

Comments

@joyceerhl
Copy link
Collaborator

When a quickpick has more items than can fit into the initial list, it's not obvious there are hidden items that need to be scrolled into view. The current visual treatment is a very subtle scrollbar flash when the quickpick is first opened, but thereafter there is no visual indication that there are more items.

The current behavior presents issues for the remote indicator menu, which displays actions from all installed remote extensions (connect to host, create new codespace) etc. The remote indicator menu is meant to improve discoverability and ease of access to remote actions, and the current truncation inhibits discoverability of those remote actions.

Proposals:

  1. render a 🔽 arrow button at the bottom of the quickpick when there are items offscreen which will scroll down to the next 'page' of items when clicked
  2. always render the scrollbar
@TylerLeonhardt
Copy link
Member

Looking at prior art here:

shows scrollbar always:

Slack
image

Spotlight
image

GitHub
image

Does what we do (nothing):

Teams
image

Alfred
image

Docker
image

Some thoughts

One thing I'm noticing is that some render the height as the middle of an item... which is an indication that there is scroll. Not sure if that is intentional or not, but it would be something that we have control of.

While the 🔽 is a neat idea, I fear that it will be in the way while reading the item it is on top of...

My preference is either render the scroll bar... or maybe do nothing since the "command palette" experience can be seen across many products and most if not all allow scrolling.

@TylerLeonhardt TylerLeonhardt added under-discussion Issue is under discussion for relevance, priority, approach quick-pick Quick-pick widget issues labels Feb 8, 2023
@TylerLeonhardt
Copy link
Member

Oh, I wanted to point out that the scroll bar does flash today:
Recording 2023-02-08 at 10 31 03

and if your mouse is hovering over the list, the scrollbar sticks around.

This feels like enough of an indication that there's scroll.

@joyceerhl
Copy link
Collaborator Author

While the 🔽 is a neat idea, I fear that it will be in the way while reading the item it is on top of

Instead of rendering it atop an item, what if we rendered it below all the items in the quickpick?

@TylerLeonhardt
Copy link
Member

Do you not think the flashing scroll bar is enough? The Explorer does this too.

@joyceerhl
Copy link
Collaborator Author

I don't think it's enough, particularly for the remote indicator scenario where you're triggering it by clicking the status bar--there will be a brief flash when it's first opened, and if you then use up/down arrows to navigate through the list, you don't see the scrollbar.

@TylerLeonhardt
Copy link
Member

Is this a hunch or based on user feedback?

I talked to @bpasero a bit about how the fading went when we rolled it out everywhere and there were some issues opened:
#66000
#15106

not scoped to quickpick but rather holistically.

We have settings to control the behavior but only in the editor I guess:
image

in terms of proposal 1 for scrollbar visibility, I feel like the issues I linked are a better holistic way forward.

As for the ⬇️ ... I'm not sold. Either it makes the quick pick taller (just for a little arrow) or it covers up content.... plus I couldn't find a single quick pick example in the wild that takes this approach.

@joyceerhl
Copy link
Collaborator Author

I think it's fair to consider a global treatment for scrollable content as you say, the linked proposals look promising.

@TylerLeonhardt TylerLeonhardt added this to the March 2023 milestone Mar 6, 2023
@TylerLeonhardt TylerLeonhardt added feature-request Request for new features or functionality and removed under-discussion Issue is under discussion for relevance, priority, approach labels Mar 6, 2023
@TylerLeonhardt
Copy link
Member

Proposed solution: increase the max-height by a little bit so it renders like:
image

TylerLeonhardt added a commit that referenced this issue Mar 6, 2023
#176281)

* Make max-height a little taller so it's obvious when quickpick scrolls

Fixes #173851

* comments
@vscodenpa vscodenpa added unreleased Patch has not yet been released in VS Code Insiders insiders-released Patch has been released in VS Code Insiders and removed unreleased Patch has not yet been released in VS Code Insiders labels Mar 6, 2023
@TylerLeonhardt TylerLeonhardt added the verification-needed Verification of issue is requested label Mar 20, 2023
@TylerLeonhardt
Copy link
Member

steps to verify:

  • open the command palette
  • it should render in the middle of the item (like my last screenshot) to indicate that it does scroll

@joyceerhl joyceerhl added the verified Verification succeeded label Mar 20, 2023
@github-actions github-actions bot locked and limited conversation to collaborators Apr 20, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature-request Request for new features or functionality insiders-released Patch has been released in VS Code Insiders quick-pick Quick-pick widget issues verification-needed Verification of issue is requested verified Verification succeeded
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants
@TylerLeonhardt @joyceerhl @vscodenpa and others