summaryrefslogtreecommitdiffstats
path: root/src/compositor/wayland_wrapper/qwlextendedsurface.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rework how we manage extensionsJørgen Lind2015-08-281-197/+0
| | | | Change-Id: If2cbf096e7419bc1bda007d5167ce39d1a5d50ae
* LGPL v3 license change for Qt Wayland CompositorJørgen Lind2015-07-241-27/+23
| | | | Change-Id: I84ed248b471464214d935352768f300d4b90dec3
* Keep Surface's visibility is in sync between client and compositor.Gunnar Sletta2015-03-231-3/+2
| | | | | | | | | | | In change fa32466916f1e0fbd2be28bd48df2d9edfcd5e5f we moved the visibility variable from QtWayland::ExtendedSurface to QtWayland::Surface. But we didn't move the code in the ShellSurface that kept this state in sync with the client. As a result the client and compositor would get out of sync. Change-Id: I54a7cb9f4b0669d3f3839ac8a29d8c42407195e2 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* Update copyright headersJani Heikkinen2015-02-171-4/+4
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I5a74d32515c3f1fe7aa1916f4241c92832510f8c Reviewed-by: Antti Kokko <antti.kokko@theqtcompany.com>
* Fix wrong check condition.Giulio Camuffo2014-12-121-1/+1
| | | | | Change-Id: Iecd5050097abcafa06073d41a31d1ae31fac5b42 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* Be more careful when destroying wl_resourcesv5.4.0-rc1v5.4.0Giulio Camuffo2014-10-281-5/+13
| | | | | | | | The compositor must not destroy wl_resources when it wants to, else it breaks the contract with the client. Change-Id: Ic0d298072cdf0954d2504c04bff2bcc99733e621 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Fix the compositor's wayland versioningGiulio Camuffo2014-10-091-4/+4
| | | | | | | | | We cannot just assume all clients implement the same version of the various interfaces as the compositor does. Keep track of them, and react accordingly when creating a resource or sending an event. Change-Id: I9792433a14d49c5c4df0c892fc1349ce0dfb0d43 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Make Surface own its visibility propertyGiulio Camuffo2014-08-011-8/+1
| | | | | Change-Id: I5eb8ab7bfb16505c8a14c4d77c5ff55aa0e22cfc Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Use wl_surface.set_buffer_transform to signal surface rotationGiulio Camuffo2014-07-311-26/+0
| | | | | | | | Drop the custom request in the surface extension, and use the wayland core mechanism. Change-Id: I580f56c90bcd3b2c5a6da08d1a033b10790ac330 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Use wayland core interfaces to signal output rotationGiulio Camuffo2014-07-311-0/+27
| | | | | | | | The wl_output interface has an event for signaling the rotation of the display, so use that instead of our own thing. Change-Id: I8a017d575ee456a7a81649e19a015085fb784805 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Introduce QWaylandSurfaceInterfaceGiulio Camuffo2014-07-301-1/+17
| | | | | | | | | | | | | | | | | | | | | Wayland is designed to be easily extensible with new protocol, unfortunately it currently isn't possible with QtCompositor. A QtWayland compositor has two ends: the Wayland end and the shell/wm end, which may be implemented in QML. These two ends communicate mainly through the QWaylandSurface and the QWaylandSurfaceView classes, but the Wayland end is currently unable to hook into custom protocol extensions. This is the purpose of the new QWaylandSurfaceInterface class, and of QWaylandSurfaceOp and its subclasses: based on the QEvent model, QWaylandSurfaceOp has only a type member, and its type specific subclasses have additional data if needed. A custom protocol implementation, such as xdg_surface or my_fancy_surface, will use a QWaylandSurfaceInterface subclass which will call its specific protocol functions when it gets the relative operation requests from the parent surface. The QWaylandShellSurface class is now redundant so it is removed. Change-Id: I37a86157a251626215f57ce030c77a26bfd65126 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Initialize 'm_visibility' member variableGunnar Sletta2014-04-051-0/+1
| | | | | | Change-Id: I638feb828792257ecf7bd29c4f86ed2d06174590 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Prevent crash when extended surface is destroyed.Gunnar Sletta2014-04-051-0/+1
| | | | | | | | | | | | | | | The surface is not destroyed synchronously with the extended surface so there is a small chance that something accesses Surface::extendedSurface() between the time when the extended surface is destroyed and the Surface itself is cleaned up. We also want to make sure that the extended surface is not hanging around after the surface is destroyed, so nuke it immediately on surface_destroy_resource. Change-Id: I87eff0b07727f1b528e803a5a617908658665f20 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Integrate QWindow::Visibility into Compositor APIAndrew Knight2013-08-091-4/+10
| | | | | | | | | | | | | | | | | This enhances the onscreen_visibility extension to use QWindow's visibility API. This way, the compositor can set the QWindow::visibility on a Qt client. Any client that updates its window type through wl_shell will also have its QWaylandSurface::visibility property updated, and the compositor can choose to composite the surface accordingly. This also simplifies exposure handling in QWaylandWindow so that it can use the base implementation. The existing use of this extension, setClientRenderingEnabled, is kept for compatibility, and maps to QWindow::Hidden (false) and QWindow::AutomaticVisibility (true). Change-Id: If009649b98c792ca79585fbb09ea7912efeef7da Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Implement QPlatformWindow::raise() in QWaylandWindow and relay it to the ↵Robin Burchell2013-08-061-0/+10
| | | | | | | | | | compositor Change-Id: I744f9799730810e4afc73f86487a34aa0fd8405b Done-with: Vesa Halttunen <vesa.halttunen@jollamobile.com> Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com> Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Make the Compositor side of extended surface use the QtWaylandScannerJørgen Lind2013-06-061-67/+31
| | | | | Change-Id: I9b71f78c1db4aa4044dde25881d74a7c519046a8 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Namespace Qt extensions qt_ instead of wl_Jørgen Lind2013-05-221-11/+11
| | | | | Change-Id: I6882f1747fa42b11e795252cba169f65e2fe08e5 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Adapted Surface and Region to use the qtwaylandscanner.Samuel Rødal2013-04-231-1/+1
| | | | | | | | This requires some slight additions to the qtwaylandscanner to handle the pattern of the wl_resource not being owned by the generated class. Change-Id: Ia49c8129cee3a203ca9a727e83fafd3dfc653e75 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Send property to client according to it's parameterElvis Lee2013-03-131-2/+2
| | | | | | | | On ExtendedSurface::setWindowProperty(), use it's writeUpdateToClient parameter. Change-Id: I34e4af361715d4bb8cf42c73e6787b24e740df66 Reviewed-by: Jørgen Lind <jorgen.lind@gmail.com>
* Qt-ify the QtCompositor moduleAndy Nichols2013-02-081-0/+202
Currently the QtCompositor library and API do not follow the Qt API naming conventions. This commit intends to fix these inconsistencies. filenames start with q headers containing private API's end in _p public API classes begin with Q use the qt namespace macros where necessary Wayland namespace is now QtWayland wayland_wrapper classes are now private API's It's important to make these changes not just for stylistic reasons, but also because when qmake builds the module in checks for these conventions to determine how to deploy the include files. Change-Id: I8bfadeceda92a0f52cb73c704551da75540e7587 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>