Skip to content

Commit a7df65f

Browse files
authored
fix(cdk-experimental/listbox): use meta as alternative to ctrl (#30852)
1 parent 184ceee commit a7df65f

File tree

1 file changed

+13
-9
lines changed
  • src/cdk-experimental/ui-patterns/listbox

1 file changed

+13
-9
lines changed

src/cdk-experimental/ui-patterns/listbox/listbox.ts

+13-9
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,13 @@ export class ListboxPattern<V> {
133133
.on(Modifier.Shift, 'Enter', () => this._updateSelection({selectFromAnchor: true}))
134134
.on(Modifier.Shift, this.prevKey, () => this.prev({toggle: true}))
135135
.on(Modifier.Shift, this.nextKey, () => this.next({toggle: true}))
136-
.on(Modifier.Ctrl | Modifier.Shift, 'Home', () => this.first({selectFromActive: true}))
137-
.on(Modifier.Ctrl | Modifier.Shift, 'End', () => this.last({selectFromActive: true}))
138-
.on(Modifier.Ctrl, 'A', () => this._updateSelection({selectAll: true}))
136+
.on([Modifier.Ctrl, Modifier.Meta], 'A', () => this._updateSelection({selectAll: true}))
137+
.on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'Home', () =>
138+
this.first({selectFromActive: true}),
139+
)
140+
.on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'End', () =>
141+
this.last({selectFromActive: true}),
142+
)
139143
.on(Modifier.Shift, this.dynamicSpaceKey, () =>
140144
this._updateSelection({selectFromAnchor: true}),
141145
);
@@ -153,12 +157,12 @@ export class ListboxPattern<V> {
153157

154158
if (this.inputs.multi() && this.followFocus()) {
155159
manager
156-
.on(Modifier.Ctrl, this.prevKey, () => this.prev())
157-
.on(Modifier.Ctrl, this.nextKey, () => this.next())
158-
.on(Modifier.Ctrl, ' ', () => this._updateSelection({toggle: true}))
159-
.on(Modifier.Ctrl, 'Enter', () => this._updateSelection({toggle: true}))
160-
.on(Modifier.Ctrl, 'Home', () => this.first()) // TODO: Not in spec but prob should be.
161-
.on(Modifier.Ctrl, 'End', () => this.last()); // TODO: Not in spec but prob should be.
160+
.on([Modifier.Ctrl, Modifier.Meta], this.prevKey, () => this.prev())
161+
.on([Modifier.Ctrl, Modifier.Meta], this.nextKey, () => this.next())
162+
.on([Modifier.Ctrl, Modifier.Meta], ' ', () => this._updateSelection({toggle: true}))
163+
.on([Modifier.Ctrl, Modifier.Meta], 'Enter', () => this._updateSelection({toggle: true}))
164+
.on([Modifier.Ctrl, Modifier.Meta], 'Home', () => this.first()) // TODO: Not in spec but prob should be.
165+
.on([Modifier.Ctrl, Modifier.Meta], 'End', () => this.last()); // TODO: Not in spec but prob should be.
162166
}
163167

164168
return manager;

0 commit comments

Comments
 (0)