summaryrefslogtreecommitdiff
path: root/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Update commercial license headers"v5.15.3-lts-lgplTarja Sundqvist2021-03-221-20/+20
| | | | | | | | | | | This reverts commit 6bb05fed8fdb564f3ff0136bbdaf4efd6088797d. Revert of commercial license headers is required for Qt 5.15.3 opensource release. Task-number: QTBUG-91108 Change-Id: Ia867596ca140b1c37717baafe07cbcddd2a9b1fd Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
* Update commercial license headersTarja Sundqvist2021-01-271-20/+20
| | | | | | | | | | | | | | | Updated header.COMM to the files in tqtc-qtwayland. Examples, tests and documentation files are not updated. The commercial license header may contain some additional lines so that its line count equals with the earlier license header. Reason for this is that some autotests use hard coded line numbers and a change in the line count causes failures in tests. Task-number: QTQAINFRA-4214 Change-Id: Ib716dd7c17587d0155b6903f5cf62be3f99384bf Reviewed-by: Antti Kokko <antti.kokko@qt.io>
* Port from QMutex::Recursive to QRecursiveMutexMarc Mutz2019-07-311-1/+3
| | | | | Change-Id: Id3d7c7e5a62b8f7a7844dab872e16bf2094a5c91 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Client: Make QWaylandWindow's wl_surface inheritance privateJohan Klokkhammer Helsing2019-03-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | QWaylandWindow inheriting wl_surface is a leftover from the old days, and today it is sometimes causing great problems. Especially on xdg_shell and other shells where the wl_surface needs to recreated with a different role if the QWindow::type changes. This is currently worked around by calling reset() on the surface, which will destroy the wl_surface, and emit some necessary events and signals. However, much of the rest of the code still assumes that a QWaylandWindow maps directly to a single wl_surface which won't change over the lifetime of the QWaylandWindow. Today, it would make sense to implement this with composition rather than inheritance. This is a major undertaking and so this is the first small step; hide the inheritance in QWaylandWindow's public API. This makes it much more visible when and where the rest of the QPA plugin is using it, so we can eventually move it into its own class later. Task-number: QTBUG-74373 Change-Id: I257729e33c3a5368cef4bb1e16148ba392e65bd2 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
* Client: use new shell plugin pattern for ivi-shellPaul Olav Tvete2018-05-291-24/+12
| | | | | | | | | | Initialize should return false if the ivi-application global is not present. The previous code worked because ivi-shell was last in the priority list. This may not always be the case if we add more shells, or allow QT_WAYLAND_SHELL_INTEGRATION to be a list. Change-Id: Iec4409db039b3ebe163264187f901af5d845e54d Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Init variables where they are declared when possible (clang-tidy)Johan Klokkhammer Helsing2018-02-271-6/+0
| | | | | | | | | | | | | | | | | | | | clang-tidy -p compile_commands.json $file \ -checks='-*,modernize-use-default-member-init,readability-redundant-member-init' \ -config='{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: "1"}]}' \ -header-filter='qtwayland' \ -fix Afterwards I ran search and replace on the diff to clean up some whitespace errors: - Replaced '(\n\+[^:\n]*)(:\s+\+\s+)' with '$1: ' - Replaced '(\n\+[^,\n]*)(,\s+\+\s+)' with '$1, ' - Replaced '\n\+\s*\n' with '\n' I also had to do some manual edits, because for some reason, this particular clang-tidy check doesn't trigger for some files. Change-Id: I3b3909bac4bf20108bbe8ad1e01bcc54236dae1b Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Replace Q_NULLPTR with nullptrKevin Funk2017-09-261-4/+4
| | | | | | | Change-Id: I9699a957430b8d3574ce29acb91b7ada9ea6209b Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com> Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix licensingv5.9.0-beta4Jani Heikkinen2017-05-041-13/+19
| | | | | | | | | | Currently tests are licensed under GPL-EXCEPT, examples under BSD and src under LGPL so replase old license headers with new & proper ones. Also remove old & unused license files Task-number: QTBUG-57147 Change-Id: Ia6a738798736c275dc309ccfa5b627dc2178d241 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix ivi-shell surface id generation limitJens Georg2017-03-061-1/+1
| | | | | | | | | | | The code tries to calculate 2 to the power of 10, but actually calculated 2 XOR 10, limiting the actual number of surfaces possible to use within one application to 8 Change-Id: If16dccaee7aa575c6e0736fb514edb09b4dbee11 Task-number: QTBUG-58934 Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
* Remove QWaylandWindow::shellManagesActiveStateJohan Klokkhammer Helsing2016-11-101-0/+1
| | | | | | | | | | | | If m_shellSurface was deleted, there was no way for QWaylandDisplay to know whether the shell handled window deactivation or not. The shell integration now always handles the window active state. The default implementation of QWaylandShellIntegration will make a window active on keyboard focus. Change-Id: I80cfce9976b1d3c57094fdd8980c9110b873f239 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Implement initial IVI-shell support with shell integration.Yusuke Binsaki2016-02-121-0/+173
IVI-shell provides a shell interface for Weston, which maps the GENIVI API (http://www.genivi.org) for In-Vehicle Infotainment as Wayland-Ivi-Extension (http://wiki.projects.genivi.org/index.php/Wayland_IVI_Extension_Design). This patch is included in two protocol. The first is ivi-application protocol which provided by weston. Next is ivi-controller protocol which provided by Genivi's wayland-ivi-extension. In IVI use case, the client create and destroy surface with the unique ID by using ivi-application protocol. On the other hand, the controller such as HMI Controller control some properties, which are visibility, position, size, etc, with created the unique ID by using ivi-controller protocol. It means the unique ID is necessary to create and control the ivi-surface and the the ivi-layer. However Qt has no API to set the some surface or layer ID. In this ivi-shell plugin, the unique ID can be set via the environment parameter so that we can control the ivi-surface and ivi-layer. The name of environment parameter is QT_IVI_SURFACE_ID. QT_IVI_SURFACE_ID will be used as ivi-surface and ivi-layer. If application needs more than two surfaces, ivi-surface IDs will be incremented. When QT_IVI_SURFACE_ID isn't set, ivi-surface and ivi-layer ID will be generated internally. The ID consists of the process ID and the surface ID which is incremented in ivi-shell plugin. The process ID is used as lower 22 bit per 32bit. 23 to 32 bit is used as the surface IDs in a process. e.g. When the process ID is 0x765 and create two surfaces, ivi-layer ID is 0x765 and ivi-surface IDs are 0x765 and 0x00400765. +------------+---------------------------+ |31 23|22 0| +------------+---------------------------+ |0000 0000 00|00 0000 0000 0000 0000 0000| |<- ID ->|<- process ID ->| +------------+---------------------------+ We can set QT_WAYLAND_SHELL_INTEGRATION of the environment parameter to "ivi-shell" to use IVI-shell. Change-Id: Iddcfb3de89dc022530c0285524cf6bbf640147b6 Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>