bool MInverseMouseArea::isClickedOnSoftwareInputPanel(QGraphicsSceneMouseEvent *event) const { QGraphicsItem * item = scene()->itemAt(event->scenePos()); while(item != NULL) { QDeclarativeItem * declItem = dynamic_cast<QDeclarativeItem *>(item); if(declItem != NULL && declItem->objectName() == "softwareInputPanel") return true; item = item->parentItem(); } return false; }
QPointF MInverseMouseArea::mapToRootItem(QPointF pos) { QPointF mappedPos = pos; QDeclarativeItem *rootItem = parentItem(); while (rootItem->parentItem()) { if (rootItem->objectName() == "windowContent") { break; } rootItem = rootItem->parentItem(); } if (rootItem) { mappedPos = rootItem->mapFromScene(pos); } return mappedPos; }