[devtools] Fix focus when docking devtools

This patch keeps the focus on the main menu
when changing from undocked back to docked again.

Bug: chromium:1002424
Change-Id: Ic36f3e6852cb4e0a43ced6387dfeb3e2491d1d8b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1798344
Reviewed-by: Yang Guo <[email protected]>
Commit-Queue: Jan Scheffler <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#706405}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 99545773204be3df417cef1e1de3562416bdd124
diff --git a/front_end/main/Main.js b/front_end/main/Main.js
index 7d62c1a..d87913f 100644
--- a/front_end/main/Main.js
+++ b/front_end/main/Main.js
@@ -614,10 +614,21 @@
       contextMenu.headerSection().appendCustomItem(dockItemElement);
     }
 
+
+    const button = this._item.element;
+
     /**
      * @param {string} side
+     * @suppressGlobalPropertiesCheck
      */
     function setDockSide(side) {
+      const hadKeyboardFocus = document.deepActiveElement().hasAttribute('data-keyboard-focus');
+      Components.dockController.once(Components.DockController.Events.AfterDockSideChanged).then(() => {
+        button.focus();
+        if (hadKeyboardFocus) {
+          UI.markAsFocusedByKeyboard(button);
+        }
+      });
       Components.dockController.setDockSide(side);
       contextMenu.discard();
     }