Bug 277457

Summary: regression on completion tab out in khtml input text
Product: [Applications] konqueror Reporter: Andrea Iacovitti <aiacovitti>
Component: khtml formsAssignee: Konqueror Developers <konq-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: ag+services, cfeck, kde, kde, kevin.kofler, rakuco, sebastian.radish, voker57
Priority: NOR    
Version: 4.6.5   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In: 4.7.1
Sentry Crash Report:
Attachments: possible fix
missing to initialize m_blockElementUpdates

Description Andrea Iacovitti 2011-07-10 08:10:33 UTC
Version:           4.6.5
OS:                Linux

Have an html form input text field, type in some chars making completion box appears. Focus by using arrows keys any of the suggested values in the completion list then press tab key: the content of the text field is reset to the letters you typed in.

Reproducible: Always



Expected Results:  
After tabbing out, the content of text field must be the one you previously selected in completion box list.

This is a regression triggered by a klineedit fix addressing bug #256954
See https://bugs.kde.org/show_bug.cgi?id=256954#c6
Comment 1 Andrea Iacovitti 2011-07-12 09:46:23 UTC
Created attachment 61796 [details]
possible fix

Basically re-apply an old Germain's patch (svn r948588) that fixed the same problem. Look render_form.cpp (and klineedit.cpp) revision history for more details.
Comment 2 Andrea Iacovitti 2011-07-12 15:34:36 UTC
Created attachment 61812 [details]
missing to initialize m_blockElementUpdates
Comment 3 Christoph Feck 2011-07-13 02:14:45 UTC
Failed to apply to master, but I applied manually, and can confirm that it fixes the issue.
Comment 4 Christoph Feck 2011-07-13 02:16:40 UTC
Wait ... it causes an ugly regression. Whenever I open a bug report page, and close it, it ask me to confirm discarding changes (I did not change anything).
Comment 5 Rolf Eike Beer 2011-07-13 07:30:08 UTC
I also see a difference between 4.6.5 and 4.7rc2: the return press to
select an entry is passed to the form in 4.7rc2. So if I choose one entry
by keyboard in 4.7rc2 and press return to select that entry the
surrounding form is immediately submitted. This is even worse than 4.6.5
where I at least had a chance to select other fields (and then have to
deal with the suddenly disappearing completion).
Comment 6 Andrea Iacovitti 2011-07-13 10:47:59 UTC
well, master version of kdelineedit contains additional changes (especially ad0be624 and 2ea274cd) that may be (i have not verified) the cause of issue reported in the previous comment...
Comment 7 Andrea Iacovitti 2011-07-17 12:07:09 UTC
I did further testing.

The patch works fine for me in both kde 4.6.5/4.7 (cannot reproduce what's reported in comment #4).

I can reproduce what's reported in comment #5 using kde 4.7 (regardless of the patch attached to this bug report), opened separate bug #277943 for this latter issue: it seems a regression introduced by kdelibs commit 2ea274cd
Comment 8 Andrea Iacovitti 2011-08-04 17:34:00 UTC
Git commit 3c5318801156e18f3b48208a883a8596296f9f22 by Andrea Iacovitti.
Committed on 04/08/2011 at 19:25.
Pushed by aiacovitti into branch 'KDE/4.6'.

Unbreak completion on tab-out in KDE/4.6 branch
CCBUG: 277457

M  +2    -1    khtml/rendering/render_form.h
M  +7    -3    khtml/rendering/render_form.cpp

http://commits.kde.org/kdelibs/3c5318801156e18f3b48208a883a8596296f9f22
Comment 9 Andrea Iacovitti 2011-08-05 20:16:12 UTC
Git commit 2a90109ab5ff7f53b4ed0555eef3e45428619f9b by Andrea Iacovitti.
Committed on 05/08/2011 at 21:45.
Pushed by aiacovitti into branch 'KDE/4.7'.

Unbreak completion on tab-out.

KLineEdit no longer emits textEdited signal when scrolling completion
list (see commit 8db60a2f) then use textChanged as in the past.
BUG: 277457
FIXED-IN: 4.7.1

M  +2    -1    khtml/rendering/render_form.h
M  +7    -3    khtml/rendering/render_form.cpp

http://commits.kde.org/kdelibs/2a90109ab5ff7f53b4ed0555eef3e45428619f9b
Comment 10 Andrea Iacovitti 2011-08-18 19:32:34 UTC
Git commit 79bbca4aea5af9f0a73b8ff92c6a96c0ebc102af by Andrea Iacovitti.
Committed on 05/08/2011 at 21:45.
Pushed by aiacovitti into branch 'frameworks'.

Unbreak completion on tab-out.

KLineEdit no longer emits textEdited signal when scrolling completion
list (see commit 8db60a2f) then use textChanged as in the past.
BUG: 277457
FIXED-IN: 4.7.1
(cherry picked from commit 2a90109ab5ff7f53b4ed0555eef3e45428619f9b)

M  +2    -1    khtml/rendering/render_form.h
M  +7    -3    khtml/rendering/render_form.cpp

http://commits.kde.org/kdelibs/79bbca4aea5af9f0a73b8ff92c6a96c0ebc102af
Comment 11 Andrea Iacovitti 2011-10-31 08:29:20 UTC
*** Bug 285358 has been marked as a duplicate of this bug. ***