diff options
author | Johan Klokkhammer Helsing <johan.helsing@qt.io> | 2018-10-17 14:07:42 +0200 |
---|---|---|
committer | Johan Helsing <johan.helsing@qt.io> | 2018-11-16 08:49:03 +0000 |
commit | 79b7925098936ebf3a8e6ca3119256fb4f1a52a9 (patch) | |
tree | 8325821ac50530ef09e9f9d224d2dc09cc707fd6 /examples/wayland/qwindow-compositor/compositor.h | |
parent | b4509e500e2b538dd61048bf1a1f53255bbb917c (diff) |
Compositor: Fix coordinate system inconsistencies
Several properties were using pixel coordinates and surface coordinates without
converting.
[ChangeLog][Compositor] QWaylandSurface::destinationSize has been added which
returns the size of the surface that will be displayed on the screen in surface
coordinates.
[ChangeLog][Compositor] Fixed a bug where QWaylandSurface::inputRegionContains
would return true for some points outside surfaces with buffer scale > 1.
[ChangeLog][Compositor] Fixed a bug which caused ShellSurfaceItems for surfaces
with buffer scale > 1 to move too much when resizing interactively.
It also gets rid of all calls to QWaylandSurface::size, which confusingly
returns the size of the surface's buffer in pixel coordinates. Most properties
now use destionationSize's surface coordinates consistently. Hopefully,
QWaylandSurface::size can be renamed or removed in Qt 6.
Change-Id: I007256a8df7759cf74fbfd51624fa1f90c083336
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Diffstat (limited to 'examples/wayland/qwindow-compositor/compositor.h')
-rw-r--r-- | examples/wayland/qwindow-compositor/compositor.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/examples/wayland/qwindow-compositor/compositor.h b/examples/wayland/qwindow-compositor/compositor.h index 2a395a1ab..8f18dc53d 100644 --- a/examples/wayland/qwindow-compositor/compositor.h +++ b/examples/wayland/qwindow-compositor/compositor.h @@ -82,7 +82,7 @@ public: void setParentView(View *parent) { m_parentView = parent; } View *parentView() const { return m_parentView; } QPointF parentPosition() const { return m_parentView ? (m_parentView->position() + m_parentView->parentPosition()) : QPointF(); } - QSize windowSize() { return m_xdgSurface ? m_xdgSurface->windowGeometry().size() : surface() ? surface()->size() : m_size; } + QSize windowSize() { return m_xdgSurface ? m_xdgSurface->windowGeometry().size() : surface() ? surface()->destinationSize() : m_size; } QPoint offset() const { return m_offset; } qreal animationFactor() const {return m_animationFactor; } |