Skip to content

PivotGrid: open header filter popup by hotkey#33994

Open
sjbur wants to merge 1 commit into
DevExpress:26_1from
sjbur:issue-4453_26_1_v2
Open

PivotGrid: open header filter popup by hotkey#33994
sjbur wants to merge 1 commit into
DevExpress:26_1from
sjbur:issue-4453_26_1_v2

Conversation

@sjbur

@sjbur sjbur commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@sjbur sjbur self-assigned this Jun 15, 2026
@sjbur sjbur added the 26_1 label Jun 15, 2026
@sjbur sjbur marked this pull request as ready for review June 15, 2026 13:53
Copilot AI review requested due to automatic review settings June 15, 2026 13:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds keyboard support for opening PivotGrid field header filters via a hotkey, and adjusts focus/tab behavior to match the new interaction model.

Changes:

  • Added Alt+ArrowDown handling on focused PivotGrid/FieldChooser fields to open the header filter popup.
  • Removed the header filter indicator from the tab order to make field-to-field tabbing consistent (one Tab per field).
  • Updated TestCafe KBN tests to reflect the new tab order and validate the new hotkey behavior.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
packages/devextreme/js/__internal/grids/pivot_grid/field_chooser/m_field_chooser_base.ts Adds Alt+ArrowDown shortcut and removes header filter indicator tabindex during column-state rendering
e2e/testcafe-devextreme/tests/common/pivotGrid/kbn/fields.ts Updates keyboard-navigation expectations and adds coverage for opening header filter via Alt+Down

Comment on lines +130 to +138
protected _applyColumnState(options) {
const $element = super._applyColumnState(options);

if (options.name === 'headerFilter' && $element) {
$element.removeAttr('tabindex');
}

return $element;
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure whether we should do this. Suggestions?

const isAltArrowDown = e.type === 'keydown' && e.altKey && e.key === 'ArrowDown';

if (isAltArrowDown) {
const mainGroupField = getMainGroupField(this._dataSource, field);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why we need mainGroupField? Why not just use field?


const isAltArrowDown = e.type === 'keydown' && e.altKey && e.key === 'ArrowDown';

if (isAltArrowDown) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now we have 2 places for opening header filter:

  1. here
  2. the old place: https://github.com/DevExpress/DevExtreme/pull/33994/changes#diff-12a89dcfa5ebbc8ea7357eaf5c97ea7d1eea821081fd156023cd736aa14d4a72R401

I suggest to unify them, remove the old logic and add to this condition a check for header filter icon click

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants