[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373
jianli at chromium.org
jianli at chromium.org
Wed Apr 7 23:14:40 UTC 2010
The following commit has been merged in the webkit-1.2 branch:
commit 64eb1cf7ded680deb44e04dedf9502de620fbba6
Author: jianli at chromium.org <jianli at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Oct 29 17:18:02 2009 +0000
Bug 30655 - Only plain text should be copied to clipboard for TextArea.
https://bugs.webkit.org/show_bug.cgi?id=30655
Reviewed by Darin Adler.
* editing/Editor.cpp:
(WebCore::nodeIsInTextFormControl):
(WebCore::Editor::cut):
(WebCore::Editor::copy):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50279 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index f69c5ed..26e0943 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,15 @@
+2009-10-29 Jian Li <jianli at chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Bug 30655 - Only plain text should be copied to clipboard for TextArea.
+ https://bugs.webkit.org/show_bug.cgi?id=30655
+
+ * editing/Editor.cpp:
+ (WebCore::nodeIsInTextFormControl):
+ (WebCore::Editor::cut):
+ (WebCore::Editor::copy):
+
2009-10-29 Pavel Feldman <pfeldman at chromium.org>
Reviewed by Timothy Hatcher.
diff --git a/WebCore/editing/Editor.cpp b/WebCore/editing/Editor.cpp
index 3f3f736..22cba01 100644
--- a/WebCore/editing/Editor.cpp
+++ b/WebCore/editing/Editor.cpp
@@ -1003,6 +1003,16 @@ bool Editor::insertParagraphSeparator()
return true;
}
+static bool nodeIsInTextFormControl(Node* node)
+{
+ if (!node)
+ return false;
+ Node* ancestor = node->shadowAncestorNode();
+ if (ancestor == node)
+ return false;
+ return ancestor->isElementNode() && static_cast<Element*>(ancestor)->isTextFormControl();
+}
+
void Editor::cut()
{
if (tryDHTMLCut())
@@ -1013,7 +1023,10 @@ void Editor::cut()
}
RefPtr<Range> selection = selectedRange();
if (shouldDeleteRange(selection.get())) {
- Pasteboard::generalPasteboard()->writeSelection(selection.get(), canSmartCopyOrDelete(), m_frame);
+ if (nodeIsInTextFormControl(m_frame->selection()->start().node()))
+ Pasteboard::generalPasteboard()->writePlainText(m_frame->selectedText());
+ else
+ Pasteboard::generalPasteboard()->writeSelection(selection.get(), canSmartCopyOrDelete(), m_frame);
didWriteSelectionToPasteboard();
deleteSelectionWithSmartDelete(canSmartCopyOrDelete());
}
@@ -1027,13 +1040,17 @@ void Editor::copy()
systemBeep();
return;
}
-
- Document* document = m_frame->document();
- if (HTMLImageElement* imageElement = imageElementFromImageDocument(document))
- Pasteboard::generalPasteboard()->writeImage(imageElement, document->url(), document->title());
- else
- Pasteboard::generalPasteboard()->writeSelection(selectedRange().get(), canSmartCopyOrDelete(), m_frame);
-
+
+ if (nodeIsInTextFormControl(m_frame->selection()->start().node()))
+ Pasteboard::generalPasteboard()->writePlainText(m_frame->selectedText());
+ else {
+ Document* document = m_frame->document();
+ if (HTMLImageElement* imageElement = imageElementFromImageDocument(document))
+ Pasteboard::generalPasteboard()->writeImage(imageElement, document->url(), document->title());
+ else
+ Pasteboard::generalPasteboard()->writeSelection(selectedRange().get(), canSmartCopyOrDelete(), m_frame);
+ }
+
didWriteSelectionToPasteboard();
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list