<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[185968] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/185968">185968</a></dd>
<dt>Author</dt> <dd>joepeck@webkit.org</dd>
<dt>Date</dt> <dd>2015-06-25 16:09:51 -0700 (Thu, 25 Jun 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>[Mac] Web Inspector: Window dragging on toolbar should behave more like native window dragging
https://bugs.webkit.org/show_bug.cgi?id=146324

Reviewed by Timothy Hatcher.

Source/WebCore:

* inspector/InspectorFrontendClient.h:
* inspector/InspectorFrontendClientLocal.h:
Do nothing or pass it up to the the frontend client.

* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::startWindowDrag):
Add a new host function to get native window dragging behavior.

Source/WebInspectorUI:

* UserInterface/Base/Main.js:
On Mac 10.11 transition to using InspectorFrontendHost.startWindowDrag.
For older Macs continue to use InspectorFrontendHost.moveWindowBy.

* UserInterface/Protocol/InspectorFrontendHostStub.js:
(WebInspector.InspectorFrontendHostStub.prototype.startWindowDrag):
Add the stub for InspectorFrontendHostStub.

Source/WebKit/mac:

* WebCoreSupport/WebInspectorClient.h:
* WebCoreSupport/WebInspectorClient.mm:
(WebInspectorFrontendClient::startWindowDrag):
Start performing a window drag.

Source/WebKit2:

* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _startWindowDrag]):
Add a way to start a window drag from a WKView using the most
recent mouse down event.

* WebProcess/WebPage/WebInspectorUI.h:
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::startWindowDrag):
Send a message that we should start a window drag.

* UIProcess/WebInspectorProxy.messages.in:
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::startWindowDrag):
(WebKit::WebInspectorProxy::platformStartWindowDrag):
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformStartWindowDrag):
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformStartWindowDrag):
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformStartWindowDrag):
Let the platform start a window drag. Only implemented by Mac.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorFrontendClienth">trunk/Source/WebCore/inspector/InspectorFrontendClient.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorFrontendClientLocalh">trunk/Source/WebCore/inspector/InspectorFrontendClientLocal.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorFrontendHostcpp">trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorFrontendHosth">trunk/Source/WebCore/inspector/InspectorFrontendHost.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorFrontendHostidl">trunk/Source/WebCore/inspector/InspectorFrontendHost.idl</a></li>
<li><a href="#trunkSourceWebInspectorUIChangeLog">trunk/Source/WebInspectorUI/ChangeLog</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceBaseMainjs">trunk/Source/WebInspectorUI/UserInterface/Base/Main.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceProtocolInspectorFrontendHostStubjs">trunk/Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendHostStub.js</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebInspectorClienth">trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebInspectorClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPImacWKViewmm">trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPImacWKViewInternalh">trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebInspectorProxycpp">trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebInspectorProxyh">trunk/Source/WebKit2/UIProcess/WebInspectorProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebInspectorProxymessagesin">trunk/Source/WebKit2/UIProcess/WebInspectorProxy.messages.in</a></li>
<li><a href="#trunkSourceWebKit2UIProcesseflWebInspectorProxyEflcpp">trunk/Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessgtkWebInspectorProxyGtkcpp">trunk/Source/WebKit2/UIProcess/gtk/WebInspectorProxyGtk.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWebInspectorProxyMacmm">trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebInspectorUIcpp">trunk/Source/WebKit2/WebProcess/WebPage/WebInspectorUI.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebInspectorUIh">trunk/Source/WebKit2/WebProcess/WebPage/WebInspectorUI.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebCore/ChangeLog        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2015-06-25  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
+        [Mac] Web Inspector: Window dragging on toolbar should behave more like native window dragging
+        https://bugs.webkit.org/show_bug.cgi?id=146324
+
+        Reviewed by Timothy Hatcher.
+
+        * inspector/InspectorFrontendClient.h:
+        * inspector/InspectorFrontendClientLocal.h:
+        Do nothing or pass it up to the the frontend client.
+
+        * inspector/InspectorFrontendHost.h:
+        * inspector/InspectorFrontendHost.idl:
+        * inspector/InspectorFrontendHost.cpp:
+        (WebCore::InspectorFrontendHost::startWindowDrag):
+        Add a new host function to get native window dragging behavior.
+
</ins><span class="cx"> 2015-06-25  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Viewport units are wrong when scaled in 2-up mode, cause content to hop around on apple.com/music
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorFrontendClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorFrontendClient.h (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorFrontendClient.h        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebCore/inspector/InspectorFrontendClient.h        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -52,6 +52,7 @@
</span><span class="cx">     WEBCORE_EXPORT virtual void windowObjectCleared() = 0;
</span><span class="cx">     virtual void frontendLoaded() = 0;
</span><span class="cx"> 
</span><ins>+    virtual void startWindowDrag() = 0;
</ins><span class="cx">     virtual void moveWindowBy(float x, float y) = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual String localizedStringsURL() = 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorFrontendClientLocalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorFrontendClientLocal.h (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorFrontendClientLocal.h        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebCore/inspector/InspectorFrontendClientLocal.h        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -61,6 +61,7 @@
</span><span class="cx">     WEBCORE_EXPORT virtual void windowObjectCleared() override final;
</span><span class="cx">     WEBCORE_EXPORT virtual void frontendLoaded() override;
</span><span class="cx"> 
</span><ins>+    virtual void startWindowDrag() override { }
</ins><span class="cx">     WEBCORE_EXPORT virtual void moveWindowBy(float x, float y) override final;
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT virtual void requestSetDockSide(DockSide) override final;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorFrontendHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -203,6 +203,12 @@
</span><span class="cx">         m_client-&gt;setToolbarHeight(height);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void InspectorFrontendHost::startWindowDrag()
+{
+    if (m_client)
+        m_client-&gt;startWindowDrag();
+}
+
</ins><span class="cx"> void InspectorFrontendHost::moveWindowBy(float x, float y) const
</span><span class="cx"> {
</span><span class="cx">     if (m_client)
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorFrontendHosth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorFrontendHost.h (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorFrontendHost.h        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebCore/inspector/InspectorFrontendHost.h        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -64,6 +64,7 @@
</span><span class="cx">     void setAttachedWindowWidth(unsigned);
</span><span class="cx">     void setToolbarHeight(unsigned);
</span><span class="cx"> 
</span><ins>+    void startWindowDrag();
</ins><span class="cx">     void moveWindowBy(float x, float y) const;
</span><span class="cx"> 
</span><span class="cx">     String localizedStringsURL();
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorFrontendHostidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorFrontendHost.idl (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorFrontendHost.idl        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebCore/inspector/InspectorFrontendHost.idl        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -46,6 +46,7 @@
</span><span class="cx">     void setAttachedWindowWidth(unsigned long width);
</span><span class="cx">     void setToolbarHeight(unrestricted float height);
</span><span class="cx"> 
</span><ins>+    void startWindowDrag();
</ins><span class="cx">     void moveWindowBy(unrestricted float x, unrestricted float y);
</span><span class="cx"> 
</span><span class="cx">     DOMString localizedStringsURL();
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebInspectorUI/ChangeLog        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2015-06-25  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
+        [Mac] Web Inspector: Window dragging on toolbar should behave more like native window dragging
+        https://bugs.webkit.org/show_bug.cgi?id=146324
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Base/Main.js:
+        On Mac 10.11 transition to using InspectorFrontendHost.startWindowDrag.
+        For older Macs continue to use InspectorFrontendHost.moveWindowBy.
+        
+        * UserInterface/Protocol/InspectorFrontendHostStub.js:
+        (WebInspector.InspectorFrontendHostStub.prototype.startWindowDrag):
+        Add the stub for InspectorFrontendHostStub.
+
</ins><span class="cx"> 2015-06-24  Devin Rousso  &lt;drousso@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: Pressing tab in the styles sidebar shouldn't insert a tab character
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceBaseMainjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Main.js (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Base/Main.js        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Main.js        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -1469,13 +1469,22 @@
</span><span class="cx">         !event.target.classList.contains(&quot;item-section&quot;))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    // Ignore dragging on the top of the toolbar on Mac where the inspector content fills the entire window.
-    if (WebInspector.Platform.name === &quot;mac&quot; &amp;&amp; WebInspector.Platform.version.release &gt;= 10) {
-        const windowDragHandledTitleBarHeight = 22;
-        if (event.pageY &lt; windowDragHandledTitleBarHeight) {
</del><ins>+    if (WebInspector.Platform.name === &quot;mac&quot;) {
+        // New Mac releases can start a window drag.
+        if (WebInspector.Platform.version.release &gt;= 11) {
+            InspectorFrontendHost.startWindowDrag();
</ins><span class="cx">             event.preventDefault();
</span><span class="cx">             return;
</span><span class="cx">         }
</span><ins>+
+        // Ignore dragging on the top of the toolbar on Mac if the system handles it.
+        if (WebInspector.Platform.version.release === 10) {
+            const windowDragHandledTitleBarHeight = 22;
+            if (event.pageY &lt; windowDragHandledTitleBarHeight) {
+                event.preventDefault();
+                return;
+            }
+        }
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     var lastScreenX = event.screenX;
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceProtocolInspectorFrontendHostStubjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendHostStub.js (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendHostStub.js        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendHostStub.js        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -88,6 +88,10 @@
</span><span class="cx">         {
</span><span class="cx">         },
</span><span class="cx"> 
</span><ins>+        startWindowDrag: function()
+        {
+        },
+
</ins><span class="cx">         moveWindowBy: function(x, y)
</span><span class="cx">         {
</span><span class="cx">         },
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit/mac/ChangeLog        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2015-06-25  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
+        [Mac] Web Inspector: Window dragging on toolbar should behave more like native window dragging
+        https://bugs.webkit.org/show_bug.cgi?id=146324
+
+        Reviewed by Timothy Hatcher.
+
+        * WebCoreSupport/WebInspectorClient.h:
+        * WebCoreSupport/WebInspectorClient.mm:
+        (WebInspectorFrontendClient::startWindowDrag):
+        Start performing a window drag.
+
</ins><span class="cx"> 2015-06-23  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove windowResizerRect code, nobody is using it anymore
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebInspectorClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -112,6 +112,8 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void frontendLoaded() override;
</span><span class="cx"> 
</span><ins>+    virtual void startWindowDrag() override;
+
</ins><span class="cx">     virtual String localizedStringsURL() override;
</span><span class="cx"> 
</span><span class="cx">     virtual void bringToFront() override;
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebInspectorClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -196,6 +196,13 @@
</span><span class="cx">     setAttachedWindow(attached ? DockSide::Bottom : DockSide::Undocked);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WebInspectorFrontendClient::startWindowDrag()
+{
+#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101100
+    [[m_windowController window] performWindowDragWithEvent:[NSApp currentEvent]];
+#endif
+}
+
</ins><span class="cx"> String WebInspectorFrontendClient::localizedStringsURL()
</span><span class="cx"> {
</span><span class="cx">     // Call the soft link framework function to dlopen it, then [NSBundle bundleWithIdentifier:] will work.
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit2/ChangeLog        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2015-06-25  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
+        [Mac] Web Inspector: Window dragging on toolbar should behave more like native window dragging
+        https://bugs.webkit.org/show_bug.cgi?id=146324
+
+        Reviewed by Timothy Hatcher.
+
+        * UIProcess/API/mac/WKViewInternal.h:
+        * UIProcess/API/mac/WKView.mm:
+        (-[WKView _startWindowDrag]):
+        Add a way to start a window drag from a WKView using the most
+        recent mouse down event.
+
+        * WebProcess/WebPage/WebInspectorUI.h:
+        * WebProcess/WebPage/WebInspectorUI.cpp:
+        (WebKit::WebInspectorUI::startWindowDrag):
+        Send a message that we should start a window drag.
+
+        * UIProcess/WebInspectorProxy.messages.in:
+        * UIProcess/WebInspectorProxy.h:
+        * UIProcess/WebInspectorProxy.cpp:
+        (WebKit::WebInspectorProxy::startWindowDrag):
+        (WebKit::WebInspectorProxy::platformStartWindowDrag):
+        * UIProcess/efl/WebInspectorProxyEfl.cpp:
+        (WebKit::WebInspectorProxy::platformStartWindowDrag):
+        * UIProcess/gtk/WebInspectorProxyGtk.cpp:
+        (WebKit::WebInspectorProxy::platformStartWindowDrag):
+        * UIProcess/mac/WebInspectorProxyMac.mm:
+        (WebKit::WebInspectorProxy::platformStartWindowDrag):
+        Let the platform start a window drag. Only implemented by Mac.
+
</ins><span class="cx"> 2015-06-25  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [iOS] When using the back swipe gesture in Safari, the previous webpage will flash for a second
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -3953,6 +3953,13 @@
</span><span class="cx"> 
</span><span class="cx"> #endif // __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101000
</span><span class="cx"> 
</span><ins>+#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101100
+- (void)_startWindowDrag
+{
+    [[self window] performWindowDragWithEvent:_data-&gt;_mouseDownEvent];
+}
+#endif
+
</ins><span class="cx"> @end
</span><span class="cx"> 
</span><span class="cx"> @implementation WKView (Private)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewInternalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -146,6 +146,10 @@
</span><span class="cx"> - (void)_didPerformImmediateActionHitTest:(const WebKit::WebHitTestResult::Data&amp;)hitTestResult contentPreventsDefault:(BOOL)contentPreventsDefault userData:(API::Object*)userData;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101100
+- (void)_startWindowDrag;
+#endif
+
</ins><span class="cx"> @property (nonatomic, retain, setter=_setPrimaryTrackingArea:) NSTrackingArea *_primaryTrackingArea;
</span><span class="cx"> 
</span><span class="cx"> @property (readonly) NSWindow *_targetWindowForMovePreparation;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebInspectorProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -283,6 +283,11 @@
</span><span class="cx">     platformSetAttachedWindowWidth(width);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WebInspectorProxy::startWindowDrag()
+{
+    platformStartWindowDrag();
+}
+
</ins><span class="cx"> void WebInspectorProxy::togglePageProfiling()
</span><span class="cx"> {
</span><span class="cx">     if (!m_inspectedPage)
</span><span class="lines">@@ -696,6 +701,11 @@
</span><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WebInspectorProxy::platformStartWindowDrag()
+{
+    notImplemented();
+}
+
</ins><span class="cx"> String WebInspectorProxy::inspectorPageURL() const
</span><span class="cx"> {
</span><span class="cx">     notImplemented();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebInspectorProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebInspectorProxy.h (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebInspectorProxy.h        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit2/UIProcess/WebInspectorProxy.h        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -132,6 +132,8 @@
</span><span class="cx">     void setAttachedWindowWidth(unsigned);
</span><span class="cx">     void setToolbarHeight(unsigned height) { platformSetToolbarHeight(height); }
</span><span class="cx"> 
</span><ins>+    void startWindowDrag();
+
</ins><span class="cx">     bool isProfilingPage() const { return m_isProfilingPage; }
</span><span class="cx">     void togglePageProfiling();
</span><span class="cx"> 
</span><span class="lines">@@ -177,6 +179,7 @@
</span><span class="cx">     void platformSetAttachedWindowHeight(unsigned);
</span><span class="cx">     void platformSetAttachedWindowWidth(unsigned);
</span><span class="cx">     void platformSetToolbarHeight(unsigned);
</span><ins>+    void platformStartWindowDrag();
</ins><span class="cx">     void platformSave(const String&amp; filename, const String&amp; content, bool base64Encoded, bool forceSaveAs);
</span><span class="cx">     void platformAppend(const String&amp; filename, const String&amp; content);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebInspectorProxymessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebInspectorProxy.messages.in (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebInspectorProxy.messages.in        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit2/UIProcess/WebInspectorProxy.messages.in        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -41,6 +41,8 @@
</span><span class="cx">     SetAttachedWindowWidth(unsigned width)
</span><span class="cx">     SetToolbarHeight(unsigned height)
</span><span class="cx"> 
</span><ins>+    StartWindowDrag()
+
</ins><span class="cx"> #if ENABLE(INSPECTOR_SERVER)
</span><span class="cx">     SendMessageToRemoteFrontend(String message)
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcesseflWebInspectorProxyEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -232,6 +232,11 @@
</span><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WebInspectorProxy::platformStartWindowDrag()
+{
+    notImplemented();
+}
+
</ins><span class="cx"> void WebInspectorProxy::platformSave(const String&amp;, const String&amp;, bool, bool)
</span><span class="cx"> {
</span><span class="cx">     notImplemented();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessgtkWebInspectorProxyGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/gtk/WebInspectorProxyGtk.cpp (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/gtk/WebInspectorProxyGtk.cpp        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit2/UIProcess/gtk/WebInspectorProxyGtk.cpp        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -281,6 +281,11 @@
</span><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WebInspectorProxy::platformStartWindowDrag()
+{
+    notImplemented();
+}
+
</ins><span class="cx"> void WebInspectorProxy::platformSave(const String&amp;, const String&amp;, bool, bool)
</span><span class="cx"> {
</span><span class="cx">     notImplemented();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWebInspectorProxyMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -819,6 +819,13 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WebInspectorProxy::platformStartWindowDrag()
+{
+#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101100
+    [m_inspectorView-&gt;_page-&gt;wkView() _startWindowDrag];
+#endif
+}
+
</ins><span class="cx"> String WebInspectorProxy::inspectorPageURL() const
</span><span class="cx"> {
</span><span class="cx">     // Call the soft link framework function to dlopen it, then [NSBundle bundleWithIdentifier:] will work.
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebInspectorUIcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebInspectorUI.cpp (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebInspectorUI.cpp        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebInspectorUI.cpp        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -102,6 +102,11 @@
</span><span class="cx">     bringToFront();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WebInspectorUI::startWindowDrag()
+{
+    WebProcess::singleton().parentProcessConnection()-&gt;send(Messages::WebInspectorProxy::StartWindowDrag(), m_inspectedPageIdentifier);
+}
+
</ins><span class="cx"> void WebInspectorUI::moveWindowBy(float x, float y)
</span><span class="cx"> {
</span><span class="cx">     FloatRect frameRect = m_page-&gt;corePage()-&gt;chrome().windowRect();
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebInspectorUIh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebInspectorUI.h (185967 => 185968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebInspectorUI.h        2015-06-25 23:09:16 UTC (rev 185967)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebInspectorUI.h        2015-06-25 23:09:51 UTC (rev 185968)
</span><span class="lines">@@ -78,6 +78,7 @@
</span><span class="cx">     void windowObjectCleared() override;
</span><span class="cx">     void frontendLoaded() override;
</span><span class="cx"> 
</span><ins>+    void startWindowDrag() override;
</ins><span class="cx">     void moveWindowBy(float x, float y) override;
</span><span class="cx"> 
</span><span class="cx">     String localizedStringsURL() override;
</span></span></pre>
</div>
</div>

</body>
</html>