Skip to content

Test: Custom dropdown widget #40589

@bpasero

Description

@bpasero

Refs: #25965

Complexity: 3

The dropdown widget was replaced by a custom widget when the dropdown is visible:

dropdown

The widget is used, e.g.:

  • to switch output channels
  • to switch terminals
  • to switch debug configuration
  • to switch running applications when debugging multiple
  • to switch breakpoint condition in the editor

Verify:

  • the dropdown works properly in the places used
  • it behaves similar to the native counter part (e.g. try in stable)
  • keyboard access is possible
  • screen reader reports properly
  • dropdown adapts to different themes (same colors used as tree/list)

DropDown Theme Colors:

dropdown.border
dropdown.background
dropdown.foreground
focusBorder
list.focusBackground
list.focusForeground
list.hoverBackground
list.hoverForeground
activeContrastBorder

DropDown List implements ContextView:
Test overflow/margin:

  • Minimum bottoms 10px margin with status bar
  • Vertical scrollbar appears on overflow
  • ContextView controls horizontal behavior - will flip horizontally if overflow to righg margin

Test blur: Drop-down should never be disconnected from parent select

  • Panel close, change position, loss of focus

DropDown List implements custom keyboard/mouse controller:

  • Test collapsed and expanded navigation, select, exit: See cheat sheet below.

Keyboard/Mouse Handling:

Collapsed select:

  • Home, End, Up, Down, Page-Up, Page-Down - changes selection within the collapsed drop-down
  • Disabled option should never receive focus
  • Selection activated immediately (eg Add Debug Configuration)
  • Navigate to option by first character
  • Enter, Space, Alt-Down, Alt-Up - Expand drop-Down
  • SingleClick - Expand/Collapse drop-Down

Expanded select:

  • Home, End, Up, Down, Page-Up, Page-Down - changes selection
  • Disabled option should never receive focus
  • Navigate to option by first character
  • Enter - activate selection, close drop-down, return focus to parent select
  • Escape - activate selection, close drop-down, return focus to parent select
  • SingleClick - activate selection, close drop-down, return focus to parent select
  • Loss of focus Mouse/Keyboard - drop-down closes, focus on target

/cc @cleidigh

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions