aboutsummaryrefslogtreecommitdiffstats
path: root/plugin/spatialnavigation4dir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/spatialnavigation4dir.cpp')
-rw-r--r--plugin/spatialnavigation4dir.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/plugin/spatialnavigation4dir.cpp b/plugin/spatialnavigation4dir.cpp
index bc1d8f8..8bccd7c 100644
--- a/plugin/spatialnavigation4dir.cpp
+++ b/plugin/spatialnavigation4dir.cpp
@@ -100,34 +100,32 @@ CursorNavigationAttached* SpatialNavigation4Dir::getNextCandidate(
//item that is closest within the projection
CursorNavigationAttached* inProjectionItem = nullptr;
- qreal inProjectionItemDistance = -1;
+ float inProjectionItemDistance = -1;
//item that is closest in the general direction, but not within projection
CursorNavigationAttached* inDirectionItem = nullptr;
- qreal inDirectionItemDistance = -1;
+ float inDirectionItemDistance = -1;
for (auto candidate : candidates)
{
QQuickItem *candidateItem = candidate->item();
- if (!candidateItem->isVisible() || !candidateItem->isEnabled()) {
- //qDebug() << "skipping a invisible/disabled item";
+ if (!candidate->available() || candidate == currentItem)
continue;
- }
//scene coords of the candidate
QRectF candidateSceneRect = candidateItem->mapRectToScene(
- QRect( 0, 0,
+ QRectF( 0, 0,
candidateItem->width(), candidateItem->height() ));
if (isInDirection(candidateSceneRect)) {
if (isInProjection(candidateSceneRect)) {
- int dist = distanceSquared(currentItemSceneRect,candidateSceneRect);
+ float dist = distanceSquared(currentItemSceneRect,candidateSceneRect);
if (inProjectionItemDistance > dist || !inProjectionItem)
{
inProjectionItemDistance = dist;
inProjectionItem = candidate;
}
} else if (!inProjectionItem) {
- int dist = distanceSquared(currentItemSceneRect,candidateSceneRect);
+ float dist = distanceSquared(currentItemSceneRect,candidateSceneRect);
if (inDirectionItemDistance > dist || !inDirectionItem)
{
inDirectionItemDistance = dist;