Blob Blame History Raw
--- kdelibs/khtml/rendering/render_form.cpp
+++ kdelibs/khtml/rendering/render_form.cpp
@@ -1012,11 +1012,11 @@
 // -----------------------------------------------------------------------------
 
 RenderLineEdit::RenderLineEdit(HTMLInputElementImpl *element)
-    : RenderFormElement(element)
+    : RenderFormElement(element), m_blockElementUpdates(false)
 {
     LineEditWidget *edit = new LineEditWidget(element, view(), view()->widget());
     connect(edit,SIGNAL(returnPressed()), this, SLOT(slotReturnPressed()));
-    connect(edit,SIGNAL(textEdited(QString)),this,SLOT(slotTextEdited(QString)));
+    connect(edit,SIGNAL(textChanged(QString)),this,SLOT(slotTextChanged(QString)));
 
     if(element->inputType() == HTMLInputElementImpl::PASSWORD)
         edit->setEchoMode( QLineEdit::Password );
@@ -1142,17 +1142,21 @@
     }
 
     if (element()->value().string() != widget()->text()) {
+        m_blockElementUpdates = true;
         int pos = widget()->cursorPosition();
         widget()->setText(element()->value().string());
         widget()->setCursorPosition(pos);
+        m_blockElementUpdates = false;
     }
     widget()->setReadOnly(element()->readOnly());
 
     RenderFormElement::updateFromElement();
 }
 
-void RenderLineEdit::slotTextEdited(const QString &string)
+void RenderLineEdit::slotTextChanged(const QString &string)
 {
+    if (m_blockElementUpdates) return;
+
     // don't use setValue here!
     element()->m_value = string;
     element()->m_unsubmittedFormChange = true;
--- kdelibs/khtml/rendering/render_form.h
+++ kdelibs/khtml/rendering/render_form.h
@@ -282,12 +282,13 @@
     void setSelectionRange(long start, long end);
 public Q_SLOTS:
     void slotReturnPressed();
-    void slotTextEdited(const QString &string);
+    void slotTextChanged(const QString &string);
 protected:
 
 private:
     virtual bool isEditable() const { return true; }
     virtual bool canHaveBorder() const { return true; }
+    bool m_blockElementUpdates;
 };
 
 // -------------------------------------------------------------------------