Summary: | Unexpected bottom tabbar scrolling with close button disabled | ||
---|---|---|---|
Product: | [Applications] konqueror | Reporter: | Ilya Konkov <eruart> |
Component: | general | Assignee: | Konqueror Developers <konq-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | andresbajotierra |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Ilya Konkov
2008-02-21 15:33:45 UTC
I can confirm this (KDE 4.0.1, 20080201). Bug appears, because there is no check that scrollbars are already at end of range. As a result event will be send to KonqFrameTabs with pos() for viewport widget which can be pretty large (ie 800x2000) But isEmptyTabbarSpace() doesn't expect such event->pos() and fails checks. One of this two fixes resolves issue: Index: khtml/khtmlview.cpp =================================================================== --- khtml/khtmlview.cpp (revision 777881) +++ khtml/khtmlview.cpp (working copy) @@ -3667,7 +3667,7 @@ killTimer(d->scrollingFromWheelTimerId); d->scrollingFromWheelTimerId = startTimer(400); - if (m_part->parentPart()) { + if (m_part->parentPart() || parent()) { // don't propagate if we are a sub-frame and our scrollbars are already at end of range bool h = (static_cast<QWheelEvent*>(e)->orientation() == Qt::Horizontal); bool d = (static_cast<QWheelEvent*>(e)->delta() < 0); Index: kdeui/widgets/ktabwidget.cpp =================================================================== --- kdeui/widgets/ktabwidget.cpp (revision 777881) +++ kdeui/widgets/ktabwidget.cpp (working copy) @@ -348,7 +348,7 @@ if ( event->orientation() == Qt::Horizontal ) return; - if ( d->isEmptyTabbarSpace( event->pos() ) ) + if ( d->isEmptyTabbarSpace( mapFromGlobal( event->globalPos() ) ) ) wheelDelta( event->delta() ); else event->ignore(); Can you still reproduce the bug with a recent KDE version? . Isn't it fixed with the patches described in comment 2 ? I can't reproduce the bug anymore with current svn version. I guess it can be closed now. |