Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=11083
REGRESSION: Typing tab key fails to insert a tab character in Google Docs editable area
<rdar://problem/
4757650>
* editing/inserting/typing-tab-designmode-expected.txt: Added.
* editing/inserting/typing-tab-designmode-forms-expected.checksum: Added.
* editing/inserting/typing-tab-designmode-forms-expected.png: Added.
* editing/inserting/typing-tab-designmode-forms-expected.txt: Added.
* editing/inserting/typing-tab-designmode-forms.html: Added.
* editing/inserting/typing-tab-designmode.html: Added.
WebCore:
Reviewed by Darin.
Fix http://bugs.webkit.org/show_bug.cgi?id=11083
REGRESSION: Typing tab key fails to insert a tab character in Google Docs editable area
<rdar://problem/
4757650>
Allow inserting tabs in designMode. Backtab behaves like before (matches FF).
* page/EventHandler.cpp:
(WebCore::EventHandler::defaultTabEventHandler):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@20159
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2007-03-13 Antti Koivisto <antti@apple.com>
+
+ Reviewed by Darin.
+
+ http://bugs.webkit.org/show_bug.cgi?id=11083
+ REGRESSION: Typing tab key fails to insert a tab character in Google Docs editable area
+ <rdar://problem/4757650>
+
+ * editing/inserting/typing-tab-designmode-expected.txt: Added.
+ * editing/inserting/typing-tab-designmode-forms-expected.checksum: Added.
+ * editing/inserting/typing-tab-designmode-forms-expected.png: Added.
+ * editing/inserting/typing-tab-designmode-forms-expected.txt: Added.
+ * editing/inserting/typing-tab-designmode-forms.html: Added.
+ * editing/inserting/typing-tab-designmode.html: Added.
+
2007-03-13 Darin Adler <darin@apple.com>
* fast/js/kde/RegExp-expected.txt: Fix the one other test affected by
--- /dev/null
+ try if tabs work in designMode
+
--- /dev/null
+92c5d1f61b60dc40b4f43204e242b3c1
\ No newline at end of file
--- /dev/null
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+ RenderTextControl {INPUT} at (2,2) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+ RenderBR {BR} at (152,16) size 0x0
+ RenderTextControl {INPUT} at (2,25) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+ RenderText {#text} at (152,25) size 4x18
+ text run at (152,25) width 4: " "
+ RenderText {#text} at (156,25) size 455x18
+ text run at (156,25) width 455: "tabbing between forms in design mode (nothing happens at the moment)"
+ RenderBR {BR} at (611,39) size 0x0
+layer at (13,13) size 142x13
+ RenderBlock {DIV} at (3,3) size 142x13
+layer at (13,36) size 142x13
+ RenderBlock {DIV} at (3,3) size 142x13
+caret: position 0 of child 0 {DIV} of child 1 {INPUT} of child 0 {BODY} of child 0 {HTML} of document
--- /dev/null
+<body>
+<input id=i><br>
+<input>
+<script>
+
+document.designMode="on";
+
+var e = document.getElementById('i');
+e.focus();
+
+if (window.eventSender) {
+ var mod = [];
+ eventSender.keyDown('\t', mod);
+}
+</script>
+tabbing between forms in design mode (nothing happens at the moment)<br>
+
+</script>
--- /dev/null
+<body>
+<script>
+if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+
+document.designMode="on";
+
+var e = document.body;
+var s = window.getSelection();
+s.setPosition(e, 0);
+
+if (window.eventSender) {
+ var mod = [];
+ eventSender.keyDown('\t', mod);
+}
+</script>
+try if tabs work in designMode<br>
+
+</script>
+2007-03-13 Antti Koivisto <antti@apple.com>
+
+ Reviewed by Darin.
+
+ Fix http://bugs.webkit.org/show_bug.cgi?id=11083
+ REGRESSION: Typing tab key fails to insert a tab character in Google Docs editable area
+ <rdar://problem/4757650>
+
+ Allow inserting tabs in designMode. Backtab behaves like before (matches FF).
+
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::defaultTabEventHandler):
+
2007-03-13 David Hyatt <hyatt@apple.com>
Fix two counting errors in the decoded size of objects in the WebCore cache. We need to explicitly
void EventHandler::defaultTabEventHandler(Event* event, bool isBackTab)
{
Page* page = m_frame->page();
- if (!page ||! page->tabKeyCyclesThroughElements())
+ // Tabs can be used in design mode editing. You can still move out with back tab.
+ if (!page || !page->tabKeyCyclesThroughElements() || (m_frame->document()->inDesignMode() && !isBackTab))
return;
FocusController* focus = page->focusController();
KeyboardEvent* keyboardEvent = findKeyboardEvent(event);