summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-09-14 12:35:52 +0200
committerPaul Olav Tvete <paul.tvete@theqtcompany.com>2015-09-14 12:17:05 +0000
commitf5f06c709937b657c66ca4e35f4e3065ba390153 (patch)
tree1019883bf566cc7de6d86b9cd2ab4f43b342b26c /src/compositor/compositor_api
parent2deffa537c82e2f21e01dff5c8f5ba283dd06032 (diff)
Remove global coordinates
This involves removing: - pickView and mapView from QWaylandOutput - requestedPos[X,Y] from QWaylandView Change-Id: Ie53eef434ac6ae7d0d5474f649f78a59ae857167 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Diffstat (limited to 'src/compositor/compositor_api')
-rw-r--r--src/compositor/compositor_api/qwaylandkeyboard.cpp2
-rw-r--r--src/compositor/compositor_api/qwaylandoutput.cpp21
-rw-r--r--src/compositor/compositor_api/qwaylandoutput.h3
-rw-r--r--src/compositor/compositor_api/qwaylandoutputspace.cpp22
-rw-r--r--src/compositor/compositor_api/qwaylandoutputspace.h4
-rw-r--r--src/compositor/compositor_api/qwaylandquickitem.cpp10
-rw-r--r--src/compositor/compositor_api/qwaylandquickitem.h6
-rw-r--r--src/compositor/compositor_api/qwaylandtouch.cpp4
-rw-r--r--src/compositor/compositor_api/qwaylandview.cpp45
-rw-r--r--src/compositor/compositor_api/qwaylandview.h13
10 files changed, 18 insertions, 112 deletions
diff --git a/src/compositor/compositor_api/qwaylandkeyboard.cpp b/src/compositor/compositor_api/qwaylandkeyboard.cpp
index b61dd562a..08fd783ab 100644
--- a/src/compositor/compositor_api/qwaylandkeyboard.cpp
+++ b/src/compositor/compositor_api/qwaylandkeyboard.cpp
@@ -400,7 +400,7 @@ bool QWaylandKeyboard::setFocus(QWaylandSurface *surface)
{
Q_D(QWaylandKeyboard);
QWaylandShellSurface *shellsurface = QWaylandShellSurface::findIn(surface);
- if (shellsurface && shellsurface->isTransientInactive())
+ if (shellsurface && shellsurface->focusPolicy() == QWaylandShellSurface::NoKeyboardFocus)
return false;
d->grab->focused(surface);
return true;
diff --git a/src/compositor/compositor_api/qwaylandoutput.cpp b/src/compositor/compositor_api/qwaylandoutput.cpp
index 2b027cdd4..7c93d2563 100644
--- a/src/compositor/compositor_api/qwaylandoutput.cpp
+++ b/src/compositor/compositor_api/qwaylandoutput.cpp
@@ -566,27 +566,6 @@ void QWaylandOutput::surfaceLeave(QWaylandSurface *surface)
QWaylandSurfacePrivate::get(surface)->send_leave(resourceForClient(surface->client()));
}
-QWaylandView *QWaylandOutput::pickView(const QPointF &outputPosition) const
-{
- Q_D(const QWaylandOutput);
- for (int nSurface = 0; nSurface < d->surfaceViews.size(); nSurface++) {
- const QWaylandSurface *surface = d->surfaceViews.at(nSurface).surface;
- if (surface->isCursorSurface())
- continue;
- const QVector<QWaylandView *> views = d->surfaceViews.at(nSurface).views;
- for (int nView = 0; nView < views.size(); nView++) {
- if (QRectF(views.at(nView)->requestedPosition(), surface->size()).contains(outputPosition))
- return views.at(nView);
- }
- }
- return Q_NULLPTR;
-}
-
-QPointF QWaylandOutput::mapToView(QWaylandView *view, const QPointF &outputPosition) const
-{
- return outputPosition - view->requestedPosition();
-}
-
void QWaylandOutput::setWidth(int newWidth)
{
Q_D(QWaylandOutput);
diff --git a/src/compositor/compositor_api/qwaylandoutput.h b/src/compositor/compositor_api/qwaylandoutput.h
index 5f4d9fab2..38f624130 100644
--- a/src/compositor/compositor_api/qwaylandoutput.h
+++ b/src/compositor/compositor_api/qwaylandoutput.h
@@ -165,9 +165,6 @@ public:
virtual void update();
- Q_INVOKABLE virtual QWaylandView *pickView(const QPointF &outputPosition) const;
- Q_INVOKABLE virtual QPointF mapToView(QWaylandView *view, const QPointF &surfacePosition) const;
-
Q_INVOKABLE QPointF mapToOutputSpace(const QPointF &point);
Q_SIGNALS:
diff --git a/src/compositor/compositor_api/qwaylandoutputspace.cpp b/src/compositor/compositor_api/qwaylandoutputspace.cpp
index b5a45cb1e..d17bc7bbf 100644
--- a/src/compositor/compositor_api/qwaylandoutputspace.cpp
+++ b/src/compositor/compositor_api/qwaylandoutputspace.cpp
@@ -132,26 +132,4 @@ QList<QWaylandOutput *>QWaylandOutputSpace::outputs(const QPoint &point) const
return retOutputs;
}
-QWaylandView *QWaylandOutputSpace::pickView(const QPointF &globalPosition) const
-{
- Q_D(const QWaylandOutputSpace);
- foreach (QWaylandOutput *output, d->outputs) {
- if (!QRectF(output->geometry()).contains(globalPosition))
- continue;
- output->pickView(globalPosition);
- }
-
- return 0;
-}
-
-QPointF QWaylandOutputSpace::mapToView(QWaylandView *view, const QPointF &globalPosition) const
-{
- return globalPosition - (view->requestedPosition() + view->output()->geometry().topLeft());
-}
-
-QPointF QWaylandOutputSpace::mapToSpace(QWaylandView *view, const QPointF &local) const
-{
- return local + view->requestedPosition() + view->output()->geometry().topLeft();
-}
-
QT_END_NAMESPACE
diff --git a/src/compositor/compositor_api/qwaylandoutputspace.h b/src/compositor/compositor_api/qwaylandoutputspace.h
index 8531c2290..5400febb8 100644
--- a/src/compositor/compositor_api/qwaylandoutputspace.h
+++ b/src/compositor/compositor_api/qwaylandoutputspace.h
@@ -80,10 +80,6 @@ public:
Q_INVOKABLE QList<QWaylandOutput *>outputs() const;
Q_INVOKABLE QList<QWaylandOutput *>outputs(const QPoint &point) const;
- Q_INVOKABLE QWaylandView *pickView(const QPointF &globalPosition) const;
- Q_INVOKABLE QPointF mapToView(QWaylandView *view, const QPointF &spacePoint) const;
- Q_INVOKABLE QPointF mapToSpace(QWaylandView *view, const QPointF &local) const;
-
Q_SIGNALS:
void geometryConstraintChanged();
void geometryChanged();
diff --git a/src/compositor/compositor_api/qwaylandquickitem.cpp b/src/compositor/compositor_api/qwaylandquickitem.cpp
index f0a592927..21d17e77b 100644
--- a/src/compositor/compositor_api/qwaylandquickitem.cpp
+++ b/src/compositor/compositor_api/qwaylandquickitem.cpp
@@ -194,6 +194,8 @@ QSGTextureProvider *QWaylandQuickItem::textureProvider() const
void QWaylandQuickItem::mousePressEvent(QMouseEvent *event)
{
+ m_mousePressPosition = event->windowPos();
+
if (!shouldSendInputEvents()) {
event->ignore();
return;
@@ -218,16 +220,19 @@ void QWaylandQuickItem::mouseMoveEvent(QMouseEvent *event)
QWaylandInputDevice *inputDevice = compositor()->inputDeviceFor(event);
inputDevice->sendMouseMoveEvent(m_view.data(), event->localPos(), event->windowPos());
} else {
+ emit mouseMove(event->windowPos());
event->ignore();
}
}
void QWaylandQuickItem::mouseReleaseEvent(QMouseEvent *event)
{
+ m_mousePressPosition = QPointF();
if (shouldSendInputEvents()) {
QWaylandInputDevice *inputDevice = compositor()->inputDeviceFor(event);
inputDevice->sendMouseReleaseEvent(event->button());
} else {
+ emit mouseRelease();
event->ignore();
}
}
@@ -434,6 +439,11 @@ void QWaylandQuickItem::setFocusOnClick(bool focus)
emit focusOnClickChanged();
}
+QPointF QWaylandQuickItem::mousePressPosition() const
+{
+ return m_mousePressPosition;
+}
+
/*!
\qmlproperty bool QtWayland::QWaylandSurfaceItem::paintEnabled
diff --git a/src/compositor/compositor_api/qwaylandquickitem.h b/src/compositor/compositor_api/qwaylandquickitem.h
index 10355df2d..57dd91f0a 100644
--- a/src/compositor/compositor_api/qwaylandquickitem.h
+++ b/src/compositor/compositor_api/qwaylandquickitem.h
@@ -67,6 +67,7 @@ class Q_COMPOSITOR_EXPORT QWaylandQuickItem : public QQuickItem
Q_PROPERTY(bool resizeSurfaceToItem READ resizeSurfaceToItem WRITE setResizeSurfaceToItem NOTIFY resizeSurfaceToItemChanged)
Q_PROPERTY(bool inputEventsEnabled READ inputEventsEnabled WRITE setInputEventsEnabled NOTIFY inputEventsEnabledChanged)
Q_PROPERTY(bool focusOnClick READ focusOnClick WRITE setFocusOnClick NOTIFY focusOnClickChanged)
+ Q_PROPERTY(QPointF mousePressPosition READ mousePressPosition)
public:
QWaylandQuickItem(QQuickItem *parent = 0);
@@ -98,6 +99,8 @@ public:
bool focusOnClick() const;
void setFocusOnClick(bool focus);
+ QPointF mousePressPosition() const;
+
protected:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
@@ -134,6 +137,8 @@ Q_SIGNALS:
void surfaceDestroyed();
void inputEventsEnabledChanged();
void focusOnClickChanged();
+ void mouseMove(const QPointF &windowPosition);
+ void mouseRelease();
protected:
QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *);
@@ -157,6 +162,7 @@ private:
QQuickWindow *m_connectedWindow;
QWaylandSurface::Origin m_origin;
+ QPointF m_mousePressPosition;
};
QT_END_NAMESPACE
diff --git a/src/compositor/compositor_api/qwaylandtouch.cpp b/src/compositor/compositor_api/qwaylandtouch.cpp
index 61a018b03..e417ab8ea 100644
--- a/src/compositor/compositor_api/qwaylandtouch.cpp
+++ b/src/compositor/compositor_api/qwaylandtouch.cpp
@@ -200,12 +200,10 @@ void QWaylandTouch::sendFullTouchEvent(QTouchEvent *event)
return;
const int pointCount = points.count();
- QPointF pos = d->seat->mouseFocus()->requestedPosition();
for (int i = 0; i < pointCount; ++i) {
const QTouchEvent::TouchPoint &tp(points.at(i));
// Convert the local pos in the compositor window to surface-relative.
- QPointF p = tp.pos() - pos;
- sendTouchPointEvent(tp.id(), p, tp.state());
+ sendTouchPointEvent(tp.id(), tp.pos(), tp.state());
}
sendFrameEvent();
}
diff --git a/src/compositor/compositor_api/qwaylandview.cpp b/src/compositor/compositor_api/qwaylandview.cpp
index ecc337bb4..7f1d3b93d 100644
--- a/src/compositor/compositor_api/qwaylandview.cpp
+++ b/src/compositor/compositor_api/qwaylandview.cpp
@@ -144,51 +144,6 @@ void QWaylandView::setOutput(QWaylandOutput *newOutput)
emit outputChanged();
}
-void QWaylandView::setRequestedPosition(const QPointF &pos)
-{
- Q_D(QWaylandView);
- bool xChanged = !qFuzzyCompare(pos.x(), d->requestedPos.x());
- bool yChanged = !qFuzzyCompare(pos.y(), d->requestedPos.y());
- if (xChanged || yChanged) {
- d->requestedPos = pos;
- emit requestedPositionChanged();
- }
- if (xChanged)
- emit requestedXPositionChanged();
- if (yChanged)
- emit requestedYPositionChanged();
-}
-
-QPointF QWaylandView::requestedPosition() const
-{
- Q_D(const QWaylandView);
- return d->requestedPos;
-}
-
-qreal QWaylandView::requestedXPosition() const
-{
- Q_D(const QWaylandView);
- return d->requestedPos.x();
-}
-
-void QWaylandView::setRequestedXPosition(qreal xPos)
-{
- Q_D(QWaylandView);
- setRequestedPosition(QPointF(xPos, d->requestedPos.y()));
-}
-
-qreal QWaylandView::requestedYPosition() const
-{
- Q_D(const QWaylandView);
- return d->requestedPos.y();
-}
-
-void QWaylandView::setRequestedYPosition(qreal yPos)
-{
- Q_D(QWaylandView);
- setRequestedPosition(QPointF(d->requestedPos.x(), yPos));
-}
-
void QWaylandView::attach(const QWaylandBufferRef &ref, const QRegion &damage)
{
Q_D(QWaylandView);
diff --git a/src/compositor/compositor_api/qwaylandview.h b/src/compositor/compositor_api/qwaylandview.h
index 47d1f9112..7eba0c809 100644
--- a/src/compositor/compositor_api/qwaylandview.h
+++ b/src/compositor/compositor_api/qwaylandview.h
@@ -56,9 +56,6 @@ class Q_COMPOSITOR_EXPORT QWaylandView : public QObject
Q_PROPERTY(QObject *renderObject READ renderObject CONSTANT)
Q_PROPERTY(QWaylandSurface *surface READ surface WRITE setSurface NOTIFY surfaceChanged)
Q_PROPERTY(QWaylandOutput *output READ output WRITE setOutput NOTIFY outputChanged)
- Q_PROPERTY(QPointF requestedPosition READ requestedPosition WRITE setRequestedPosition NOTIFY requestedPositionChanged)
- Q_PROPERTY(qreal requestedXPosition READ requestedXPosition WRITE setRequestedXPosition NOTIFY requestedXPositionChanged)
- Q_PROPERTY(qreal requestedYPosition READ requestedYPosition WRITE setRequestedYPosition NOTIFY requestedYPositionChanged)
Q_PROPERTY(bool bufferLock READ isBufferLocked WRITE setBufferLock NOTIFY bufferLockChanged)
public:
QWaylandView(QObject *renderObject = 0, QObject *parent = 0);
@@ -72,13 +69,6 @@ public:
QWaylandOutput *output() const;
void setOutput(QWaylandOutput *output);
- QPointF requestedPosition() const;
- void setRequestedPosition(const QPointF &pos);
- qreal requestedXPosition() const;
- void setRequestedXPosition(qreal xPos);
- qreal requestedYPosition() const;
- void setRequestedYPosition(qreal yPos);
-
virtual void attach(const QWaylandBufferRef &ref, const QRegion &damage);
virtual bool advance();
virtual void discardCurrentBuffer();
@@ -94,9 +84,6 @@ Q_SIGNALS:
void surfaceChanged();
void surfaceDestroyed();
void outputChanged();
- void requestedPositionChanged();
- void requestedXPositionChanged();
- void requestedYPositionChanged();
void bufferLockChanged();
};