Title: [259094] trunk/Source/WebInspectorUI
- Revision
- 259094
- Author
- nvasil...@apple.com
- Date
- 2020-03-26 17:11:31 -0700 (Thu, 26 Mar 2020)
Log Message
Web Inspector: RTL: ArrowLeft and ArrowRight keys select wrong navigation bar items
https://bugs.webkit.org/show_bug.cgi?id=209617
Reviewed by Devin Rousso.
* UserInterface/Views/NavigationBar.js:
(WI.NavigationBar.prototype._keyDown):
Reverse direction for RTL mode.
Modified Paths
Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (259093 => 259094)
--- trunk/Source/WebInspectorUI/ChangeLog 2020-03-26 23:54:19 UTC (rev 259093)
+++ trunk/Source/WebInspectorUI/ChangeLog 2020-03-27 00:11:31 UTC (rev 259094)
@@ -1,3 +1,14 @@
+2020-03-26 Nikita Vasilyev <nvasil...@apple.com>
+
+ Web Inspector: RTL: ArrowLeft and ArrowRight keys select wrong navigation bar items
+ https://bugs.webkit.org/show_bug.cgi?id=209617
+
+ Reviewed by Devin Rousso.
+
+ * UserInterface/Views/NavigationBar.js:
+ (WI.NavigationBar.prototype._keyDown):
+ Reverse direction for RTL mode.
+
2020-03-23 Devin Rousso <drou...@apple.com>
Web Inspector: REGRESSION(r257791): event breakpoint icon should be [E]
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NavigationBar.js (259093 => 259094)
--- trunk/Source/WebInspectorUI/UserInterface/Views/NavigationBar.js 2020-03-26 23:54:19 UTC (rev 259093)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NavigationBar.js 2020-03-27 00:11:31 UTC (rev 259094)
@@ -368,32 +368,35 @@
_keyDown(event)
{
- if (event.keyIdentifier !== "Left" && event.keyIdentifier !== "Right")
+ let isLeftArrow = event.code === "ArrowLeft";
+ if (!isLeftArrow && event.code !== "ArrowRight")
return;
event.preventDefault();
event.stopPropagation();
- var selectedNavigationItemIndex = this._navigationItems.indexOf(this._selectedNavigationItem);
+ let delta = isLeftArrow ? -1 : 1;
+ if (WI.resolveLayoutDirectionForElement(this._element) === WI.LayoutDirection.RTL)
+ delta *= -1;
- if (event.keyIdentifier === "Left") {
- if (selectedNavigationItemIndex === -1)
- selectedNavigationItemIndex = this._navigationItems.length;
+ let selectedIndex = this._navigationItems.indexOf(this._selectedNavigationItem);
- do {
- selectedNavigationItemIndex = Math.max(0, selectedNavigationItemIndex - 1);
- } while (selectedNavigationItemIndex && !(this._navigationItems[selectedNavigationItemIndex] instanceof WI.RadioButtonNavigationItem));
- } else if (event.keyIdentifier === "Right") {
- do {
- selectedNavigationItemIndex = Math.min(selectedNavigationItemIndex + 1, this._navigationItems.length - 1);
- } while (selectedNavigationItemIndex < this._navigationItems.length - 1 && !(this._navigationItems[selectedNavigationItemIndex] instanceof WI.RadioButtonNavigationItem));
- }
+ if (selectedIndex === -1)
+ selectedIndex = (this._navigationItems.length + delta) % this._navigationItems.length;
- if (!(this._navigationItems[selectedNavigationItemIndex] instanceof WI.RadioButtonNavigationItem))
- return;
+ while (true) {
+ selectedIndex += delta;
- this.selectedNavigationItem = this._navigationItems[selectedNavigationItemIndex];
- this.selectedNavigationItem?.element.focus();
+ if (selectedIndex < 0 || selectedIndex >= this._navigationItems.length)
+ break;
+
+ let selectedItemCandidate = this._navigationItems[selectedIndex];
+ if (selectedItemCandidate instanceof WI.RadioButtonNavigationItem) {
+ this.selectedNavigationItem = selectedItemCandidate;
+ this.selectedNavigationItem.element.focus();
+ break;
+ }
+ }
}
_calculateMinimumWidth()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes