WebCore:
authoradele@apple.com <adele@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 16 Feb 2008 00:44:56 +0000 (00:44 +0000)
committeradele@apple.com <adele@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 16 Feb 2008 00:44:56 +0000 (00:44 +0000)
commit59b761ad22c05da225962922fe9e8252216022ea
treeb59466fc4d98d906317e5f33a23001e540b8b5c1
parent605c1ab650b48f7d252262dea25beb4ace57b36b
WebCore:

        Reviewed by Darin.

        Fix for <rdar://problem/5745072> REGRESSION (r29348): Shift + Tab does not change indent level on Google Docs

        The immediate cause of this bug was that we stopped sending keypress events for the tab key when it is used to advance focus.
        We had a special case for forward-tab in designMode, where the default behavior was to insert a tab key (or respect the keypress handler behavior).
        This change makes the shift-tab behavior match the forward-tab behavior.

        If the site had put their event handler (which does the indenting) on the keydown event, then this problem would have been avoided.
        This is something we should look into and maybe advise the site on in the future.  However, it's a low-risk change to just make tab and shift-tab uniform
        in this respect, so I think this is the way to go for right now.

        * page/EventHandler.cpp: (WebCore::EventHandler::defaultTabEventHandler):

LayoutTests:

        Reviewed by Darin.

        Updated test for <rdar://problem/5745072> REGRESSION (r29348): Shift + Tab does not change indent level on Google Docs

        * editing/inserting/typing-tab-designmode-expected.txt:
        * editing/inserting/typing-tab-designmode.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/editing/inserting/typing-tab-designmode-expected.txt
LayoutTests/editing/inserting/typing-tab-designmode.html
WebCore/ChangeLog
WebCore/page/EventHandler.cpp