summaryrefslogtreecommitdiffstats
path: root/src/compositor
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-09-18 12:41:52 +0200
committerPaul Olav Tvete <paul.tvete@theqtcompany.com>2015-09-18 14:56:24 +0000
commite32a289798a1b16e3d0858217003dcc2864cc0c1 (patch)
treefcee5fc9d00c7f457196fd1bdd26e1c87953f456 /src/compositor
parentc73103268debe47f8b51fe08d69e00a6d7d109f9 (diff)
Add sizeFollowsSurface property to QWaylandQuickItem
Change-Id: I416f5689679d08b9ba89dceceac5c2ed9128ed9a Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Diffstat (limited to 'src/compositor')
-rw-r--r--src/compositor/compositor_api/qwaylandquickitem.cpp39
-rw-r--r--src/compositor/compositor_api/qwaylandquickitem.h10
-rw-r--r--src/compositor/compositor_api/qwaylandquickitem_p.h4
3 files changed, 29 insertions, 24 deletions
diff --git a/src/compositor/compositor_api/qwaylandquickitem.cpp b/src/compositor/compositor_api/qwaylandquickitem.cpp
index 0d5a249cf..02a6519c0 100644
--- a/src/compositor/compositor_api/qwaylandquickitem.cpp
+++ b/src/compositor/compositor_api/qwaylandquickitem.cpp
@@ -366,8 +366,10 @@ void QWaylandQuickItem::handleSurfaceChanged()
connect(newSurface, &QWaylandSurface::sizeChanged, this, &QWaylandQuickItem::updateSize);
connect(newSurface, &QWaylandSurface::configure, this, &QWaylandQuickItem::updateBuffer);
connect(newSurface, &QWaylandSurface::redraw, this, &QQuickItem::update);
- setWidth(newSurface->size().width());
- setHeight(newSurface->size().height());
+ if (d->sizeFollowsSurface) {
+ setWidth(newSurface->size().width());
+ setHeight(newSurface->size().height());
+ }
if (newSurface->origin() != d->origin) {
d->origin = newSurface->origin();
emit originChanged();
@@ -414,7 +416,8 @@ void QWaylandQuickItem::parentChanged(QWaylandSurface *newParent, QWaylandSurfac
void QWaylandQuickItem::updateSize()
{
- if (surface()) {
+ Q_D(QWaylandQuickItem);
+ if (d->sizeFollowsSurface && surface()) {
setSize(surface()->size());
}
}
@@ -442,6 +445,21 @@ bool QWaylandQuickItem::inputRegionContains(QPointF localPosition)
return false;
}
+bool QWaylandQuickItem::sizeFollowsSurface() const
+{
+ Q_D(const QWaylandQuickItem);
+ return d->sizeFollowsSurface;
+}
+
+void QWaylandQuickItem::setSizeFollowsSurface(bool sizeFollowsSurface)
+{
+ Q_D(QWaylandQuickItem);
+ if (d->sizeFollowsSurface == sizeFollowsSurface)
+ return;
+ d->sizeFollowsSurface = sizeFollowsSurface;
+ emit sizeFollowsSurfaceChanged();
+}
+
/*!
\qmlproperty bool QtWayland::QWaylandSurfaceItem::paintEnabled
@@ -469,12 +487,6 @@ bool QWaylandQuickItem::touchEventsEnabled() const
return d->touchEventsEnabled;
}
-bool QWaylandQuickItem::resizeSurfaceToItem() const
-{
- Q_D(const QWaylandQuickItem);
- return d->resizeSurfaceToItem;
-}
-
void QWaylandQuickItem::updateBuffer(bool hasBuffer)
{
Q_D(QWaylandQuickItem);
@@ -559,15 +571,6 @@ void QWaylandQuickItem::setTouchEventsEnabled(bool enabled)
}
}
-void QWaylandQuickItem::setResizeSurfaceToItem(bool enabled)
-{
- Q_D(QWaylandQuickItem);
- if (d->resizeSurfaceToItem != enabled) {
- d->resizeSurfaceToItem = enabled;
- emit resizeSurfaceToItemChanged();
- }
-}
-
bool QWaylandQuickItem::inputEventsEnabled() const
{
Q_D(const QWaylandQuickItem);
diff --git a/src/compositor/compositor_api/qwaylandquickitem.h b/src/compositor/compositor_api/qwaylandquickitem.h
index 5bdd30566..813224514 100644
--- a/src/compositor/compositor_api/qwaylandquickitem.h
+++ b/src/compositor/compositor_api/qwaylandquickitem.h
@@ -64,9 +64,9 @@ class Q_COMPOSITOR_EXPORT QWaylandQuickItem : public QQuickItem
Q_PROPERTY(bool paintEnabled READ paintEnabled WRITE setPaintEnabled)
Q_PROPERTY(bool touchEventsEnabled READ touchEventsEnabled WRITE setTouchEventsEnabled NOTIFY touchEventsEnabledChanged)
Q_PROPERTY(QWaylandSurface::Origin origin READ origin NOTIFY originChanged)
- 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(bool sizeFollowsSurface READ sizeFollowsSurface WRITE setSizeFollowsSurface NOTIFY sizeFollowsSurfaceChanged)
public:
QWaylandQuickItem(QQuickItem *parent = 0);
@@ -85,10 +85,8 @@ public:
bool paintEnabled() const;
bool touchEventsEnabled() const;
- bool resizeSurfaceToItem() const;
void setTouchEventsEnabled(bool enabled);
- void setResizeSurfaceToItem(bool enabled);
bool inputEventsEnabled() const;
void setInputEventsEnabled(bool enabled);
@@ -97,6 +95,10 @@ public:
void setFocusOnClick(bool focus);
bool inputRegionContains(QPointF localPosition);
+
+ bool sizeFollowsSurface() const;
+ void setSizeFollowsSurface(bool sizeFollowsSurface);
+
protected:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
@@ -130,12 +132,12 @@ Q_SIGNALS:
void surfaceChanged();
void touchEventsEnabledChanged();
void originChanged();
- void resizeSurfaceToItemChanged();
void surfaceDestroyed();
void inputEventsEnabledChanged();
void focusOnClickChanged();
void mouseMove(const QPointF &windowPosition);
void mouseRelease();
+ void sizeFollowsSurfaceChanged();
protected:
QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *);
diff --git a/src/compositor/compositor_api/qwaylandquickitem_p.h b/src/compositor/compositor_api/qwaylandquickitem_p.h
index a087577e7..5d2a93117 100644
--- a/src/compositor/compositor_api/qwaylandquickitem_p.h
+++ b/src/compositor/compositor_api/qwaylandquickitem_p.h
@@ -57,10 +57,10 @@ public:
, provider(Q_NULLPTR)
, paintEnabled(true)
, touchEventsEnabled(false)
- , resizeSurfaceToItem(false)
, inputEventsEnabled(true)
, newTexture(false)
, focusOnClick(true)
+ , sizeFollowsSurface(true)
, connectedWindow(Q_NULLPTR)
, origin(QWaylandSurface::OriginTopLeft)
{
@@ -100,10 +100,10 @@ public:
mutable QWaylandSurfaceTextureProvider *provider;
bool paintEnabled;
bool touchEventsEnabled;
- bool resizeSurfaceToItem;
bool inputEventsEnabled;
bool newTexture;
bool focusOnClick;
+ bool sizeFollowsSurface;
QQuickWindow *connectedWindow;
QWaylandSurface::Origin origin;