summaryrefslogtreecommitdiffstats
path: root/src/declarative/fx/qfxitem.cpp
diff options
context:
space:
mode:
authorMichael Brasser <michael.brasser@nokia.com>2009-07-10 05:47:09 (GMT)
committerMichael Brasser <michael.brasser@nokia.com>2009-07-10 05:47:09 (GMT)
commit2f67ba6d618228946ce35364c32d89a49385166a (patch)
treeb400dfd9c4fa17abd3ba65f2544989af6c71e657 /src/declarative/fx/qfxitem.cpp
parent2c037146daedb7ac0a2f8176ca9ce9b3751d5ced (diff)
downloadQt-2f67ba6d618228946ce35364c32d89a49385166a.zip
Qt-2f67ba6d618228946ce35364c32d89a49385166a.tar.gz
Qt-2f67ba6d618228946ce35364c32d89a49385166a.tar.bz2
Fix ChildMouseFilter
Diffstat (limited to 'src/declarative/fx/qfxitem.cpp')
-rw-r--r--src/declarative/fx/qfxitem.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/declarative/fx/qfxitem.cpp b/src/declarative/fx/qfxitem.cpp
index da4f1b3..686ec8d 100644
--- a/src/declarative/fx/qfxitem.cpp
+++ b/src/declarative/fx/qfxitem.cpp
@@ -2428,7 +2428,7 @@ bool QFxItem::hasFocus() const
return false;
}
-bool QFxItem::eventFilter(QObject *o, QEvent *e)
+bool QFxItem::sceneEventFilter(QGraphicsItem *w, QEvent *e)
{
switch(e->type()) {
case QEvent::GraphicsSceneMouseDoubleClick:
@@ -2442,7 +2442,7 @@ bool QFxItem::eventFilter(QObject *o, QEvent *e)
break;
}
- return QObject::eventFilter(o, e);
+ return QGraphicsItem::sceneEventFilter(w, e);
}
void QFxItem::setOptions(Options options, bool set)
@@ -2461,6 +2461,7 @@ void QFxItem::setOptions(Options options, bool set)
}
setFlag(QGraphicsItem::ItemHasNoContents, !(d->options & HasContents));
+ setFiltersChildEvents(d->options & ChildMouseFilter);
if ((old & MouseFilter) != (d->options & MouseFilter)) {
if (d->options & MouseFilter)
@@ -2510,17 +2511,15 @@ void QFxItem::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *)
void QFxItemPrivate::gvRemoveMouseFilter()
{
Q_Q(QFxItem);
- if (!canvas) return;
-
- canvas->removeEventFilter(q);
+ if (q->scene())
+ q->removeSceneEventFilter(q);
}
void QFxItemPrivate::gvAddMouseFilter()
{
Q_Q(QFxItem);
- if (!canvas) return;
-
- canvas->installEventFilter(q);
+ if (q->scene())
+ q->installSceneEventFilter(q);
}
QPixmap QFxItem::string(const QString &str, const QColor &c, const QFont &f)