diff --git a/widgets/scrollwidget.cpp b/widgets/scrollwidget.cpp index d39194e65..32f381512 100644 --- a/widgets/scrollwidget.cpp +++ b/widgets/scrollwidget.cpp @@ -33,18 +33,26 @@ #include #include +#include + //KDE #include #include #include #include +#include +#include //Plasma #include #include +#include +#include +#include #include #include + #define DEBUG 0 /* @@ -1437,6 +1445,23 @@ bool ScrollWidget::sceneEventFilter(QGraphicsItem *i, QEvent *e) return false; } + if (i->isWidget()) { + Plasma::Label *label = dynamic_cast(static_cast(i)); + if (label && (label->nativeWidget()->textInteractionFlags() & Qt::TextSelectableByMouse)) { + return false; + } + + Plasma::TextEdit *textEdit = dynamic_cast(static_cast(i)); + if (textEdit && (textEdit->nativeWidget()->textInteractionFlags() & Qt::TextSelectableByMouse)) { + return false; + } + + Plasma::TextBrowser *textBrowser= dynamic_cast(static_cast(i)); + if (textBrowser && (textBrowser->nativeWidget()->textInteractionFlags() & Qt::TextSelectableByMouse)) { + return false; + } + } + bool stealThisEvent = d->stealEvent; //still pass around mouse moves: try to make still possible to make items start a drag event. thi could be either necessary or annoying, let's see how it goes. (add QEvent::GraphicsSceneMouseMove to block them) stealThisEvent &= (e->type() == QEvent::GraphicsSceneMousePress ||