<!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>[185020] trunk/Source/WebCore</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/185020">185020</a></dd>
<dt>Author</dt> <dd>dbates@webkit.org</dd>
<dt>Date</dt> <dd>2015-05-29 16:59:26 -0700 (Fri, 29 May 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Clean up logic for updating caps lock indicator state
https://bugs.webkit.org/show_bug.cgi?id=145329

Reviewed by Sam Weinig.

Remove logic to explicitly update the state of the caps lock indicator, which was used
when the caps logic indicator was implemented as part of RenderTextControl. Currently,
the caps logic indicator is implemented as part of a shadow DOM and we have existing
logic to forward DOM focus and blur events to it so that it may update its state.

No change in behavior.

* editing/FrameSelection.cpp:
(WebCore::FrameSelection::focusedOrActiveStateChanged): Deleted.
* editing/FrameSelection.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::keyEvent): Inline the code from EventHandler::capsLockStateMayHaveChanged()
into this function because it is the only caller of EventHandler::capsLockStateMayHaveChanged() after
we removed the call site in FrameSelection::focusedOrActiveStateChanged().
(WebCore::EventHandler::capsLockStateMayHaveChanged): Deleted.
* page/EventHandler.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreeditingFrameSelectioncpp">trunk/Source/WebCore/editing/FrameSelection.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingFrameSelectionh">trunk/Source/WebCore/editing/FrameSelection.h</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlercpp">trunk/Source/WebCore/page/EventHandler.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlerh">trunk/Source/WebCore/page/EventHandler.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (185019 => 185020)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-05-29 23:53:24 UTC (rev 185019)
+++ trunk/Source/WebCore/ChangeLog        2015-05-29 23:59:26 UTC (rev 185020)
</span><span class="lines">@@ -1,3 +1,27 @@
</span><ins>+2015-05-29  Daniel Bates  &lt;dabates@apple.com&gt;
+
+        Clean up logic for updating caps lock indicator state
+        https://bugs.webkit.org/show_bug.cgi?id=145329
+
+        Reviewed by Sam Weinig.
+
+        Remove logic to explicitly update the state of the caps lock indicator, which was used
+        when the caps logic indicator was implemented as part of RenderTextControl. Currently,
+        the caps logic indicator is implemented as part of a shadow DOM and we have existing
+        logic to forward DOM focus and blur events to it so that it may update its state.
+
+        No change in behavior.
+
+        * editing/FrameSelection.cpp:
+        (WebCore::FrameSelection::focusedOrActiveStateChanged): Deleted.
+        * editing/FrameSelection.h:
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::keyEvent): Inline the code from EventHandler::capsLockStateMayHaveChanged()
+        into this function because it is the only caller of EventHandler::capsLockStateMayHaveChanged() after
+        we removed the call site in FrameSelection::focusedOrActiveStateChanged().
+        (WebCore::EventHandler::capsLockStateMayHaveChanged): Deleted.
+        * page/EventHandler.h:
+
</ins><span class="cx"> 2015-05-29  Zalan Bujtas  &lt;zalan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Text disappears shortly after page load on Nexus 7 site.
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingFrameSelectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/FrameSelection.cpp (185019 => 185020)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/FrameSelection.cpp        2015-05-29 23:53:24 UTC (rev 185019)
+++ trunk/Source/WebCore/editing/FrameSelection.cpp        2015-05-29 23:59:26 UTC (rev 185020)
</span><span class="lines">@@ -1839,9 +1839,6 @@
</span><span class="cx">         setSelectionFromNone();
</span><span class="cx">     setCaretVisibility(activeAndFocused ? Visible : Hidden);
</span><span class="cx"> 
</span><del>-    // Update for caps lock state
-    m_frame-&gt;eventHandler().capsLockStateMayHaveChanged();
-
</del><span class="cx">     // Because StyleResolver::checkOneSelector() and
</span><span class="cx">     // RenderTheme::isFocused() check if the frame is active, we have to
</span><span class="cx">     // update style and theme state that depended on those.
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingFrameSelectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/FrameSelection.h (185019 => 185020)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/FrameSelection.h        2015-05-29 23:53:24 UTC (rev 185019)
+++ trunk/Source/WebCore/editing/FrameSelection.h        2015-05-29 23:59:26 UTC (rev 185020)
</span><span class="lines">@@ -200,7 +200,7 @@
</span><span class="cx">     bool isCaretBlinkingSuspended() const { return m_isCaretBlinkingSuspended; }
</span><span class="cx"> 
</span><span class="cx">     // Focus
</span><del>-    WEBCORE_EXPORT void setFocused(bool);
</del><ins>+    void setFocused(bool);
</ins><span class="cx">     bool isFocused() const { return m_focused; }
</span><span class="cx">     WEBCORE_EXPORT bool isFocusedAndActive() const;
</span><span class="cx">     void pageActivationChanged();
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.cpp (185019 => 185020)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.cpp        2015-05-29 23:53:24 UTC (rev 185019)
+++ trunk/Source/WebCore/page/EventHandler.cpp        2015-05-29 23:59:26 UTC (rev 185020)
</span><span class="lines">@@ -3078,8 +3078,12 @@
</span><span class="cx">         return false;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    if (initialKeyEvent.windowsVirtualKeyCode() == VK_CAPITAL)
-        capsLockStateMayHaveChanged();
</del><ins>+    if (initialKeyEvent.windowsVirtualKeyCode() == VK_CAPITAL) {
+        if (auto* element = m_frame.document()-&gt;focusedElement()) {
+            if (is&lt;HTMLInputElement&gt;(*element))
+                downcast&lt;HTMLInputElement&gt;(*element).capsLockStateMayHaveChanged();
+        }
+    }
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(PAN_SCROLLING)
</span><span class="cx">     if (m_frame.mainFrame().eventHandler().panScrollInProgress()) {
</span><span class="lines">@@ -3750,15 +3754,6 @@
</span><span class="cx">         event-&gt;setDefaultHandled();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void EventHandler::capsLockStateMayHaveChanged()
-{
-    Document* document = m_frame.document();
-    if (auto* element = document-&gt;focusedElement()) {
-        if (is&lt;HTMLInputElement&gt;(*element))
-            downcast&lt;HTMLInputElement&gt;(*element).capsLockStateMayHaveChanged();
-    }
-}
-
</del><span class="cx"> void EventHandler::sendScrollEvent()
</span><span class="cx"> {
</span><span class="cx">     setFrameWasScrolledByUser();
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.h (185019 => 185020)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.h        2015-05-29 23:53:24 UTC (rev 185019)
+++ trunk/Source/WebCore/page/EventHandler.h        2015-05-29 23:59:26 UTC (rev 185020)
</span><span class="lines">@@ -259,8 +259,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void focusDocumentView();
</span><del>-
-    void capsLockStateMayHaveChanged(); // Only called by FrameSelection
</del><span class="cx">     
</span><span class="cx">     WEBCORE_EXPORT void sendScrollEvent(); // Ditto
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>