<!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>[164117] trunk/Source/WebInspectorUI</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/164117">164117</a></dd>
<dt>Author</dt> <dd>graouts@webkit.org</dd>
<dt>Date</dt> <dd>2014-02-14 12:34:06 -0800 (Fri, 14 Feb 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: color wheel should support Retina displays
https://bugs.webkit.org/show_bug.cgi?id=124355

Reviewed by Timothy Hatcher.

Take into account the devicePixelRatio in order to draw the color wheel
with as many colors as we can draw with the current DPI and to correctly
convert from page coordinates to canvas coordinates when dealing with
mouse events.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebInspectorUIChangeLog">trunk/Source/WebInspectorUI/ChangeLog</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceColorWheeljs">trunk/Source/WebInspectorUI/UserInterface/ColorWheel.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (164116 => 164117)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2014-02-14 20:28:44 UTC (rev 164116)
+++ trunk/Source/WebInspectorUI/ChangeLog        2014-02-14 20:34:06 UTC (rev 164117)
</span><span class="lines">@@ -1,3 +1,24 @@
</span><ins>+2014-02-14  Antoine Quint  &lt;graouts@webkit.org&gt;
+
+        Web Inspector: color wheel should support Retina displays
+        https://bugs.webkit.org/show_bug.cgi?id=124355
+
+        Reviewed by Timothy Hatcher.
+
+        Take into account the devicePixelRatio in order to draw the color wheel
+        with as many colors as we can draw with the current DPI and to correctly
+        convert from page coordinates to canvas coordinates when dealing with
+        mouse events.
+
+        * UserInterface/ColorWheel.js:
+        (WebInspector.ColorWheel.prototype.set dimension):
+        (WebInspector.ColorWheel.prototype.get tintedColor):
+        (WebInspector.ColorWheel.prototype.get rawColor):
+        (WebInspector.ColorWheel.prototype._drawRawCanvas):
+        (WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
+        (WebInspector.ColorWheel.prototype._drawTintedCanvas):
+        (WebInspector.ColorWheel.prototype._draw):
+
</ins><span class="cx"> 2014-02-13  Brian Burg  &lt;bburg@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: DataGrid should support editing tables with arbitrary columns
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceColorWheeljs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/ColorWheel.js (164116 => 164117)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/ColorWheel.js        2014-02-14 20:28:44 UTC (rev 164116)
+++ trunk/Source/WebInspectorUI/UserInterface/ColorWheel.js        2014-02-14 20:34:06 UTC (rev 164117)
</span><span class="lines">@@ -51,9 +51,11 @@
</span><span class="cx"> 
</span><span class="cx">     set dimension(dimension)
</span><span class="cx">     {
</span><del>-        this._finalCanvas.width = this._tintedCanvas.width = this._rawCanvas.width = dimension;
-        this._finalCanvas.height = this._tintedCanvas.height = this._rawCanvas.height = dimension;
</del><ins>+        this._finalCanvas.width = this._tintedCanvas.width = this._rawCanvas.width = dimension * window.devicePixelRatio;
+        this._finalCanvas.height = this._tintedCanvas.height = this._rawCanvas.height = dimension * window.devicePixelRatio;
</ins><span class="cx"> 
</span><ins>+        this._finalCanvas.style.width = this._finalCanvas.style.height = dimension + &quot;px&quot;;
+
</ins><span class="cx">         this._dimension = dimension;
</span><span class="cx">         // We shrink the radius a bit for better anti-aliasing.
</span><span class="cx">         this._radius = dimension / 2 - 2;
</span><span class="lines">@@ -83,7 +85,7 @@
</span><span class="cx">     get tintedColor()
</span><span class="cx">     {
</span><span class="cx">         if (this._crosshairPosition)
</span><del>-            return this._colorAtPointWithBrightness(this._crosshairPosition.x, this._crosshairPosition.y, this._brightness);
</del><ins>+            return this._colorAtPointWithBrightness(this._crosshairPosition.x * window.devicePixelRatio, this._crosshairPosition.y * window.devicePixelRatio, this._brightness);
</ins><span class="cx"> 
</span><span class="cx">         return new WebInspector.Color(WebInspector.Color.Format.RGBA, [0, 0, 0, 0]);
</span><span class="cx">     },
</span><span class="lines">@@ -98,7 +100,7 @@
</span><span class="cx">     get rawColor()
</span><span class="cx">     {
</span><span class="cx">         if (this._crosshairPosition)
</span><del>-            return this._colorAtPointWithBrightness(this._crosshairPosition.x, this._crosshairPosition.y, 1);
</del><ins>+            return this._colorAtPointWithBrightness(this._crosshairPosition.x * window.devicePixelRatio, this._crosshairPosition.y * window.devicePixelRatio, 1);
</ins><span class="cx"> 
</span><span class="cx">         return new WebInspector.Color(WebInspector.Color.Format.RGBA, [0, 0, 0, 0]);
</span><span class="cx">     },
</span><span class="lines">@@ -202,7 +204,7 @@
</span><span class="cx">     _drawRawCanvas: function() {
</span><span class="cx">         var ctx = this._rawCanvas.getContext(&quot;2d&quot;);
</span><span class="cx"> 
</span><del>-        var dimension = this._dimension;
</del><ins>+        var dimension = this._dimension * window.devicePixelRatio;
</ins><span class="cx">         var center = dimension / 2;
</span><span class="cx"> 
</span><span class="cx">         ctx.fillStyle = &quot;white&quot;;
</span><span class="lines">@@ -226,7 +228,7 @@
</span><span class="cx"> 
</span><span class="cx">     _colorAtPointWithBrightness: function(x, y, brightness)
</span><span class="cx">     {
</span><del>-        var center = this._dimension / 2;
</del><ins>+        var center = this._dimension / 2 * window.devicePixelRatio;
</ins><span class="cx">         var xDis = x - center;
</span><span class="cx">         var yDis = y - center;
</span><span class="cx">         var distance = Math.sqrt(xDis * xDis + yDis * yDis);
</span><span class="lines">@@ -251,7 +253,7 @@
</span><span class="cx">     _drawTintedCanvas: function()
</span><span class="cx">     {
</span><span class="cx">         var ctx = this._tintedCanvas.getContext(&quot;2d&quot;);
</span><del>-        var dimension = this._dimension;
</del><ins>+        var dimension = this._dimension * window.devicePixelRatio;
</ins><span class="cx"> 
</span><span class="cx">         ctx.save();
</span><span class="cx">         ctx.drawImage(this._rawCanvas, 0, 0, dimension, dimension);
</span><span class="lines">@@ -268,12 +270,13 @@
</span><span class="cx">         this._drawTintedCanvas();
</span><span class="cx"> 
</span><span class="cx">         var ctx = this._finalCanvas.getContext(&quot;2d&quot;);
</span><del>-        var dimension = this._dimension;
</del><ins>+        var dimension = this._dimension * window.devicePixelRatio;
+        var radius = this._radius * window.devicePixelRatio;
</ins><span class="cx"> 
</span><span class="cx">         ctx.save();
</span><span class="cx">         ctx.clearRect(0, 0, dimension, dimension);
</span><span class="cx">         ctx.beginPath();
</span><del>-        ctx.arc(dimension / 2, dimension / 2, this._radius + 1, 0, Math.PI * 2, true); 
</del><ins>+        ctx.arc(dimension / 2, dimension / 2, radius + 1, 0, Math.PI * 2, true); 
</ins><span class="cx">         ctx.closePath();
</span><span class="cx">         ctx.clip();
</span><span class="cx">         ctx.drawImage(this._tintedCanvas, 0, 0, dimension, dimension);
</span></span></pre>
</div>
</div>

</body>
</html>