Olivier Goffart <ogoffart@trolltech.com>
authorhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 21 Apr 2008 13:47:10 +0000 (13:47 +0000)
committerhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 21 Apr 2008 13:47:10 +0000 (13:47 +0000)
Fixes: Copying on X11 doesn't always work in webkit

Calling QClipboard::clear right before QClipboard::setData create a race condition with klipper. So don't call QClipboard::clear since it's not required.

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

WebCore/ChangeLog
WebCore/platform/qt/PasteboardQt.cpp

index 48c0b0a..39b9c7e 100644 (file)
@@ -1,3 +1,13 @@
+2008-04-21  Olivier Goffart  <ogoffart@trolltech.com>
+
+        Reviewed by Simon.
+
+        Fixes: Copying on X11 doesn't always work in webkit
+
+        Calling QClipboard::clear right before QClipboard::setData create a race condition with klipper. So don't call QClipboard::clear since it's not required.
+
+        * platform/qt/PasteboardQt.cpp:
+
 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
 
         Reviewed by Simon.
 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
 
         Reviewed by Simon.
index 29b0899..c5b51a3 100644 (file)
@@ -135,10 +135,12 @@ void Pasteboard::writeImage(Node* node, const KURL&, const String&)
     QApplication::clipboard()->setPixmap(*pixmap, QClipboard::Clipboard);
 }
 
     QApplication::clipboard()->setPixmap(*pixmap, QClipboard::Clipboard);
 }
 
+/* This function is called from Editor::tryDHTMLCopy before actually set the clipboard
+ * It introduce a race condition with klipper, which will try to grab the clipboard 
+ * It's not required to clear it anyway, since QClipboard take care about replacing the clipboard
+ */
 void Pasteboard::clear()
 {
 void Pasteboard::clear()
 {
-    QApplication::clipboard()->clear(m_selectionMode ?
-            QClipboard::Selection : QClipboard::Clipboard);
 }
 
 bool Pasteboard::isSelectionMode() const
 }
 
 bool Pasteboard::isSelectionMode() const