aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Szymon Tomasz Stefanek2010-05-31 02:59:54 +0000
committerGravatar Szymon Tomasz Stefanek2010-05-31 02:59:54 +0000
commitef8c85325b2a55f4da6699b2e1add9dbff8794db (patch)
treef39649664ff85965b36c580b780d28ee624a34f6
parentFixed #776 somehow... (diff)
downloadKVIrc-ef8c85325b2a55f4da6699b2e1add9dbff8794db.tar.gz
KVIrc-ef8c85325b2a55f4da6699b2e1add9dbff8794db.tar.bz2
KVIrc-ef8c85325b2a55f4da6699b2e1add9dbff8794db.zip
Fix for bug #488
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@4402 17fca916-40b9-46aa-a4ea-0a15b648b75c
-rw-r--r--src/kvirc/ui/kvi_windowlist_tree.cpp26
-rw-r--r--src/kvirc/ui/kvi_windowlist_tree.h1
2 files changed, 26 insertions, 1 deletions
diff --git a/src/kvirc/ui/kvi_windowlist_tree.cpp b/src/kvirc/ui/kvi_windowlist_tree.cpp
index 613f6728f..8efbb6270 100644
--- a/src/kvirc/ui/kvi_windowlist_tree.cpp
+++ b/src/kvirc/ui/kvi_windowlist_tree.cpp
@@ -35,6 +35,7 @@
#include <QHeaderView>
#include <QMouseEvent>
+#include <QWheelEvent>
#include <QPainter>
#include <QTimer>
@@ -176,9 +177,32 @@ KviTreeWindowListTreeWidget::~KviTreeWindowListTreeWidget()
void KviTreeWindowListTreeWidget::mouseMoveEvent(QMouseEvent *)
{
- //dummy just to avoid bug #581
+ // dummy just to avoid bug #581:
+ // Clicking on item A and moving the mouse to item B selects item A first and then item B
+ // Hovewer item A remains current
}
+void KviTreeWindowListTreeWidget::wheelEvent(QWheelEvent *e)
+{
+ // Mitigate bug #488:
+ // When there is a scroll bar the wheel scrolls up and down
+ // When there is no scroll bar the wheel changes selection in the tree
+ QScrollBar * pBar = verticalScrollBar();
+
+ if(!pBar)
+ return;
+ if(!pBar->isVisible())
+ return;
+ if(
+ ((e->delta() < 0) && (pBar->value() < pBar->maximum())) ||
+ ((e->delta() > 0) && (pBar->value() > pBar->minimum()))
+ )
+ QApplication::sendEvent(pBar,e);
+ else
+ e->accept(); // eat it
+}
+
+
void KviTreeWindowListTreeWidget::mousePressEvent(QMouseEvent *e)
{
KviTreeWindowListItem * it = (KviTreeWindowListItem *)itemAt(e->pos());
diff --git a/src/kvirc/ui/kvi_windowlist_tree.h b/src/kvirc/ui/kvi_windowlist_tree.h
index 5813f63a5..30e6b06cd 100644
--- a/src/kvirc/ui/kvi_windowlist_tree.h
+++ b/src/kvirc/ui/kvi_windowlist_tree.h
@@ -67,6 +67,7 @@ public:
protected:
virtual void mousePressEvent(QMouseEvent * e);
virtual void mouseMoveEvent(QMouseEvent * e);
+ virtual void wheelEvent(QWheelEvent * e);
virtual void mouseDoubleClickEvent(QMouseEvent * e);
virtual void paintEvent(QPaintEvent * event);
private: