Reviewed by Adele.
authoraroben <aroben@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 29 Jan 2007 03:22:10 +0000 (03:22 +0000)
committeraroben <aroben@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 29 Jan 2007 03:22:10 +0000 (03:22 +0000)
        Fix http://bugs.webkit.org/show_bug.cgi?id=12453
        REGRESSION(r19197): Tabbing into web page requires two key presses

        All layout tests pass.

        * page/FocusController.cpp:
        (WebCore::FocusController::advanceFocus): If there's no focused frame,
        actually go ahead and find a focusable node instead of just focusing
        the main frame and quitting. This behavior was a holdover from a
        previous desired tabbing behavior with respect to frames.

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

WebCore/ChangeLog
WebCore/page/FocusController.cpp

index 729c28e..eb3aff1 100644 (file)
@@ -1,3 +1,18 @@
+2007-01-28  Adam Roben  <aroben@apple.com>
+
+        Reviewed by Adele.
+
+        Fix http://bugs.webkit.org/show_bug.cgi?id=12453
+        REGRESSION(r19197): Tabbing into web page requires two key presses
+
+        All layout tests pass.
+
+        * page/FocusController.cpp:
+        (WebCore::FocusController::advanceFocus): If there's no focused frame,
+        actually go ahead and find a focusable node instead of just focusing
+        the main frame and quitting. This behavior was a holdover from a
+        previous desired tabbing behavior with respect to frames.
+
 2007-01-28  David Kilzer  <ddkilzer@webkit.org>
 
         Reviewed by Darin and David Hyatt.
index 829b065..6e0fb91 100644 (file)
@@ -113,16 +113,9 @@ bool FocusController::advanceFocus(KeyboardEvent* event)
 {
     ASSERT(event);
     
-    if (!focusedFrame()) {
-        setFocusedFrame(m_page->mainFrame());
-        if (Document* document = focusedFrame()->document())
-            document->setFocusedNode(0);
-
-        return true;
-    }
-
-    Frame* focusedFrame = this->focusedFrame();
-    Document* document = focusedFrame->document();
+    Frame* frame = focusedOrMainFrame();
+    ASSERT(frame);
+    Document* document = frame->document();
     if (!document)
         return false;
 
@@ -133,7 +126,6 @@ bool FocusController::advanceFocus(KeyboardEvent* event)
         : document->previousFocusableNode(document->focusedNode(), event);
             
     // If there's no focusable node to advance to, move up the frame tree until we find one.
-    Frame* frame = focusedFrame;
     while (!node && frame) {
         Frame* parentFrame = frame->tree()->parent();
         if (!parentFrame)