Skip to content

Commit 9f1be1d

Browse files
committed
Added more specific element for keyboard navigation listener
1 parent 1ad65a3 commit 9f1be1d

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

app/code/Magento/Ui/view/base/web/js/grid/columns/image-preview.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ define([
1313
defaults: {
1414
bodyTmpl: 'ui/grid/columns/image-preview',
1515
previewImageSelector: '[data-image-preview]',
16+
masonrySelector: '.masonry-image-grid',
17+
isListenerActive: false,
1618
visibleRecord: null,
1719
height: 0,
1820
displayedRecord: {},
@@ -46,7 +48,6 @@ define([
4648
*/
4749
initialize: function () {
4850
this._super();
49-
$(document).on('keydown', this.handleKeyDown.bind(this));
5051

5152
return this;
5253
},
@@ -130,6 +131,11 @@ define([
130131
show: function (record) {
131132
var img;
132133

134+
if (!this.isListenerActive) {
135+
$(this.masonrySelector).on('keydown', this.handleKeyDown.bind(this));
136+
this.isListenerActive = true;
137+
}
138+
133139
if (record._rowIndex === this.visibleRecord()) {
134140
this.hide();
135141

@@ -239,7 +245,7 @@ define([
239245
handleKeyDown: function (e) {
240246
var key = keyCodes[e.keyCode];
241247

242-
if (this.visibleRecord() !== null) {
248+
if (this.visibleRecord() !== null && document.activeElement.tagName !== 'INPUT') {
243249
if (key === 'pageLeftKey') {
244250
this.prev(this.displayedRecord());
245251
} else if (key === 'pageRightKey') {

app/code/Magento/Ui/view/base/web/templates/grid/masonry.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* See COPYING.txt for license details.
55
*/
66
-->
7-
<div data-role="grid-wrapper" class="masonry-image-grid" attr="'data-id': containerId">
7+
<div data-role="grid-wrapper" class="masonry-image-grid" attr="'data-id': containerId" tabindex="0">
88
<div class="masonry-image-column" repeat="foreach: rows, item: '$row'">
99
<div outerfasteach="data: getVisible(), as: '$col'" template="getBody()"/>
1010
</div>

0 commit comments

Comments
 (0)