Summary: | keyboard scrolling doesn't work on Yahoo! Mail pages | ||
---|---|---|---|
Product: | [Applications] konqueror | Reporter: | hughjonesd |
Component: | khtml ecma | Assignee: | Konqueror Developers <konq-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gtg850g |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Attachments: |
testcase
the original page |
Description
hughjonesd
2003-06-27 02:24:19 UTC
Created attachment 1889 [details]
testcase
OK, it's something to do with the javascript. I've removed lots of the crap
from the page. What remains still breaks scrolling. The tables seem to be
important so I assume this is some kind of Javascript/css issue.
I'll also attach the whole original page, in case anyone decides that the
cut-down version would be screwed up in any browser :-)
Created attachment 1890 [details]
the original page
the original page that breaks keyboard scrolling.
I can confirm this-- scrolling works in the Yahoo Mail folders view, but doesn't work when viewing messages themselves. Hmm, I don't call a testcase something that references 3 external js scripts and is still very big itself :) I have reduced it to the following testcase: <script> document.onkeydown = function() { } </script> foo<br><br>foo<br><br>foo<br><br>foo<br><br>foo<br><br> foo<br><br>foo<br><br>foo<br><br>foo<br><br>foo<br><br> foo<br><br>foo<br><br>foo<br><br>foo<br><br>foo<br><br> foo<br><br>foo<br><br>foo<br><br>foo<br><br>foo<br><br> foo<br><br>foo<br><br>foo<br><br>foo<br><br>foo<br><br> and I suspect the code in NodeImpl::dispatchKeyEvent. This fixes it for me. Index: khtmlview.cpp =================================================================== RCS file: /home/kde/kdelibs/khtml/khtmlview.cpp,v retrieving revision 1.570 diff -u -p -r1.570 khtmlview.cpp --- khtmlview.cpp 20 Oct 2003 21:10:37 -0000 1.570 +++ khtmlview.cpp 23 Oct 2003 11:41:02 -0000 @@ -921,12 +921,13 @@ void KHTMLView::keyPressEvent( QKeyEvent return; } } - if (!_ke->text().isNull() && m_part->xmlDocImpl()->getHTMLEventListener(EventImpl::KHTML_KEYDOWN_EVENT)) - if (m_part->xmlDocImpl()->documentElement()->dispatchKeyEvent(_ke)) - { + if (!_ke->text().isNull() && m_part->xmlDocImpl()->getHTMLEventListener(EventImpl::KHTML_KEYDOWN_EVENT)) { + // If listener returned false, stop here. Otherwise handle standard keys (#60403). + if (!m_part->xmlDocImpl()->documentElement()->dispatchKeyEvent(_ke)) { _ke->accept(); return; } + } } int offs = (clipper()->height() < 30) ? clipper()->height() : 30; Applied to CVS. |