Inspector doesn't get focused when opened in dock mode
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Mar 2015 02:37:00 +0000 (02:37 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Mar 2015 02:37:00 +0000 (02:37 +0000)
https://bugs.webkit.org/show_bug.cgi?id=143030

Reviewed by Anders Carlsson.

The bug was caused by platformBringToFront and platformAttach calling makeFirstResponder on WKWebView,
which aren't intended to become the first responder. Fixed the bug by calling makeFirstResponder on the WKView
subview of the WKWebView, which is intended to be used as the first responder on behalf of the web view.

* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformBringToFront):
(WebKit::WebInspectorProxy::platformAttach):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@181927 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm

index 8868e21..030cfb9 100644 (file)
@@ -1,3 +1,18 @@
+2015-03-24  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Inspector doesn't get focused when opened in dock mode
+        https://bugs.webkit.org/show_bug.cgi?id=143030
+
+        Reviewed by Anders Carlsson.
+
+        The bug was caused by platformBringToFront and platformAttach calling makeFirstResponder on WKWebView,
+        which aren't intended to become the first responder. Fixed the bug by calling makeFirstResponder on the WKView
+        subview of the WKWebView, which is intended to be used as the first responder on behalf of the web view.
+
+        * UIProcess/mac/WebInspectorProxyMac.mm:
+        (WebKit::WebInspectorProxy::platformBringToFront):
+        (WebKit::WebInspectorProxy::platformAttach):
+
 2015-03-24  Chris Dumez  <cdumez@apple.com>
 
         [WK2] Responses with 302 HTTP Status Code should not be cached
index 5fda7fc..50f09f6 100644 (file)
@@ -651,7 +651,7 @@ void WebInspectorProxy::platformBringToFront()
 
     // FIXME <rdar://problem/10937688>: this will not bring a background tab in Safari to the front, only its window.
     [m_inspectorView.get().window makeKeyAndOrderFront:nil];
-    [m_inspectorView.get().window makeFirstResponder:m_inspectorView.get()];
+    [m_inspectorView.get().window makeFirstResponder:m_inspectorView->_page->wkView()];
 }
 
 bool WebInspectorProxy::platformIsFront()
@@ -860,8 +860,7 @@ void WebInspectorProxy::platformAttach()
     inspectedViewFrameDidChange(currentDimension);
 
     [[inspectedView superview] addSubview:m_inspectorView.get() positioned:NSWindowBelow relativeTo:inspectedView];
-
-    [[inspectedView window] makeFirstResponder:m_inspectorView.get()];
+    [m_inspectorView.get().window makeFirstResponder:m_inspectorView->_page->wkView()];
 }
 
 void WebInspectorProxy::platformDetach()