summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | | Client: Crash instead of exit when there's a wayland errorJohan Klokkhammer Helsing2019-08-222-17/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt applications should not call exit. Task-number: QTBUG-75779 Change-Id: I91190b10f8c8e111996cd73283061e6ceaa6b1f6 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
| | * | | Handle Key_Return explicitly instead of depending on the textAndy Shaw2019-08-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When Key_Return is sent from Qt VirtualKeyboard it will send it as \n and not \r which means it will be interpreted as an unknown key. So since we know it will be able to map it in this case, we explicitly account for it so it can be mapped to the right key. Change-Id: Id5d8d9653e78975203f80790b7a3d332f0e011fa Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| | * | | Fix race condition for client buffer integration initializationJohan Klokkhammer Helsing2019-08-202-11/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This race happened because QWaylandIntegration::clientBufferIntegration (which lazily initializes the integration) was called from numerous places including code that may run on different threads without any kind of syncrhonization. An example of this is Qt3D, which indirectly and simultaneously calls createPlatformWindow (from the GUI thread) and createPlatformOpenGLContext (from its render thread), both of which needs to use the client buffer integration. In this patch, we fix it by first checking if the integration is initialized. In that case, it's safe to use it. Otherwise we lock a mutex, re-check if initialization has happened on another thread in the meantime, and then finally we initialize it. This way we should avoid the expense of mutex locking after initialization is complete, while still staying race free during initialization. Fixes: QTBUG-76504 Change-Id: I327840ebf41e014882cb659bc3e4fafb7bdb7a98 Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| | * | | Client: Emit wl_surface lifetime signals on QWaylandWindowJohan Klokkhammer Helsing2019-08-192-1/+9
| | | |/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent changes in QtBase means QtWayland will have to follow the convention of the rest of the QPA plugins and have QPlatformSurfaceEvent::SurfaceCreated and SurfaceAboutToBeDestroyed follow the QPlatformWindow (QWaylandWindow) lifetime and not the lifetime of wl_surface. Some users were depending on those events to get notified about wl_surface changes and used QPlatformNativeInterface in order to get the window's underlying wl_surfaces in responses to the events. The good news is that QPlatformNativeInterface is private (QPA) API, so we can provide an alternative by exposing new private API, which is what this patch does. The QWaylandWindow::wlSurfaceDestroyed signal already exists in the dev branch (introduced in eb66211ea9), so this is a backport of that signal as well as an addition of a new QWaylandWindow::wlSurfaceCreated signal. Task-number: QTBUG-76324 Change-Id: Ibc5748474cd52f5b9461fd1ad6cef973491174b1 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
| | * | Client: Fix large clipboard pastingDavid Edmundson2019-08-171-16/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the non-blocking file opening, when no data was available in the pipe, read could return 0 even though we were not at the end of the file. This resulted in truncated data when pasting the clipboard. This patch uses select to block until a file is available, removing the polling sleep. This means the file can be safely opened in blocking mode whilst keeping the timeout feature allowing read to work as intended. Change-Id: I936aa85e9f25197e7abe6fb3fa729b618c00924d Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| | * | Fix incorrect conversion to straight alpha pixel formatsJohan Klokkhammer Helsing2019-08-171-11/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, QWaylandSharedMemoryFormatHelper::fromWaylandShmFormat(WL_SHM_FORMAT_ARGB8888) would return Format_ARGB32, i.e. the non-premultiplied version, while, according to the wayland-devel mailing list (https://lists.freedesktop.org/archives/wayland-devel/2017-August/034791.html), all Wayland RGB-based pixel formats with alpha should have premultiplied alpha. This patch makes sure we return the premultiplied variants for ARGB8888, as well as for ABGR8888. Using a switch instead of the array also allows us more freedom to choose the preferred format in other cases where multiple QImage formats map to the same wl_shm format. While being wrapped and exported as QtWaylandClient::QWaylandShm::fromFormat (private API), this conversion function doesn't seem to be used anywhere, so this patch shouldn't cause any changes in behavior for projects that only use public API. Change-Id: Ie09f9a339b4540dd0383a72b3c951eb8c93e3ab4 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
| | * | Client: Add safer fromObject function to scannerJohan Klokkhammer Helsing2019-08-155-6/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes the scanner produce generated static functions such as QtWaylandClient::wl_surface *wl_surface::fromObject(struct ::wl_surface *object); Which casts from the wayland-scanner generated types, such as struct ::wl_surface *, to types types generated by qtwaylandscanner, but performs a check to see if the listener is set to the wrapper class first (at least for interfaces with events). This lets us easily fix crashes in a couple of places where we receive events with wayland objects that we didn't create. Also adds nullptr checks whenever we use the fromWlSurface() and fromWlOutput() functions to handle failed conversions. Task-number: QTBUG-73801 Fixes: QTBUG-74085 Change-Id: I9f33c31c7d1a939ccb3ebbbcb0eb67af10037237 Reviewed-by: Jaroslaw Kubik <jarek@froglogic.com> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 3eea45e31ef796ab6f1363f8fd2882c151becc20) Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
* | | | Client tests: Set XDG_CURRENT_DESKTOP to avoid platform themesJohan Klokkhammer Helsing2019-08-291-0/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the client tests are run from within a desktop environment, the XDG_CURRENT_DESKTOP variable may be set, causing the client to try to load a platform theme for the user's desktop. The tests, however, are running against a mock Wayland compositor, so launching a platform theme that expects to connect to a certain compositor implementation is probably not a good idea. And furthermore, if the gtk3 platform theme is used, it will start binding to interfaces and create wayland objects, confusing our existing test code. Setting XDG_CURRENT_DESKTOP to qtwaylandtests will prevent detection of the (outer) desktop environment, making tests more predictable. Change-Id: I57fa76e51cecdd0cbe8be6bd075ce67e9d2892bc Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Merge "Merge remote-tracking branch 'qt/5.12' into 5.13"Paul Olav Tvete2019-08-1544-16/+3517
|\ \ \
| * | | Merge remote-tracking branch 'qt/5.12' into 5.13Paul Olav Tvete2019-08-1444-16/+3517
|/| | | | |/ / | | | | | | | | | | | | | | | | | | | | | Conflicts: src/compositor/configure.json sync.profile tests/auto/auto.pro Change-Id: Ia6d1512aa9ad49ac7f92ae88f23026dc0ee2ccc5
| * | Backport texture sharing for NVIDIAPaul Olav Tvete2019-08-1340-7/+3502
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit backports the Vulkan server buffer and texture sharing code from Qt 5.14 to Qt 5.12 as an opt-in feature. To enable, configure with "-feature-wayland-client-texture-sharing-experimental -feature-wayland-compositor-texture-sharing-experimental" Contains code from the following commits: Add server buffer integration based on Vulkan (commit df3a1761af2f20d59ae09a7adaa2f5b959047687) Compressed texture support for vulkan server buffers (commit f710489a341713c675cfd91d22ccd7bf8f29f4dd) Implement server-side toOpenGlTexture for Vulkan (commit 19361e7259f04b08925b1e8e99faf9460770ee7b) New texture sharing protocol and infrastructure (commit 80001cbf0451f4ba2a971fb20b80dc8e25ac604d) Change-Id: I6c36ef7fddcd4db39e80d03a822d89f15eae3434 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| * | Fix expose event compressionPaul Olav Tvete2019-08-132-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For shells that do not send configure events when exposed: If setGeometry() was called before the window was initialized, Qt would not mark the window as mapped, and the window would never become visible. Change-Id: Ic933cbbff20702424129c11264215181330cc7d1 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| * | Fix the build when libs didn't get builtLiang Qi2019-08-122-4/+11
| | | | | | | | | | | | | | | Change-Id: I641a1a80edd0861049d079422eef28b095fc26b3 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* | | Fix crash when closing windows via XDG sendCloseRobert Griebl2019-08-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | This crash only occurs on a few machines running autotests for the application-manager, but it's happening consistently on the affected machines. Change-Id: I4533379580b7c1f62e4f45bf223d73aac3e8d5b7 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Fix GCC 4.8 buildVille Voutilainen2019-08-092-18/+21
| |/ |/| | | | | | | Change-Id: I0a193ceaa1549c08acad02b59db62ae313d6b334 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Fix use of private dependencyPier Luigi Fiorini2019-07-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | With 0761173a, Linux SPI Accessibility bridge was added to the Wayland QPA plugin, but this had a bad side-effect to QtWaylandClient. Linux Accessibility support is a private module, this means we have to link to it with QT_PRIVATE not QT, otherwise CMake and pkg-config files for Qt5WaylandClient will depend on it. Change-Id: I6182267f97adc2cd5bd66895df148a6a45614f45 Fixes: QTBUG-76042 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-07-113-31/+81
|\ \
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-07-113-31/+81
| |\| | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I436405677453e7df43258363c0d5c88d7b3790d0
| | * Fix compilation with C++20Marc Mutz2019-07-081-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Implicit capture of 'this' in [=] is deprecated in C++20. Fix by using explicit captures. Change-Id: Ie3a94ec60d7c56b2856d201fa3d68d0670bdd7b9 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
| | * Bump versionFrederik Gladhorn2019-07-011-1/+1
| | | | | | | | | | | | Change-Id: If69992b414824405267ea0d8c20b9f1bd996944b
| | * Client: Reset frame callback timer when hiding a windowDavid Edmundson2019-07-011-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we hide a window whilst a compositor has a pending frame to show, it's possible the compositor will not render the frame and not return the callback. If this happens on the next window expose we can be left with mFrameCallbackTimedOut still true causing isExposed() to remain false and us to not send the next buffer when we later show the window again. Change-Id: I507410415d1a930fd5fa736412055e68fdf6c1d3 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| | * Client: Fix stuttering when the GUI thread is busyJohan Klokkhammer Helsing2019-06-202-29/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we did invokeMethod for handling the frame callbacks, we had to wait for the GUI thread to finish whatever it's doing before we would stop blocking. Fix it by clearing the frame callback timer and stop blocking immediately, while delaying the rest of the work until it can be run on the other thread. Fixes: QTBUG-76397 Change-Id: I343e4feac4838926b4fa2ccac2948988bc6c3bb7 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| | * Merge "Merge remote-tracking branch 'origin/5.12.4' into 5.12"Qt Forward Merge Bot2019-06-172-1/+41
| | |\
| | | * Merge remote-tracking branch 'origin/5.12.4' into 5.12Qt Forward Merge Bot2019-06-172-1/+41
| | |/| | | | | | | | | | | | | Change-Id: I7ad83f19cf9f47b40088a56d4182514bf5b83508
| | | * Client: Don't add all windows to activePopupsv5.12.4Johan Klokkhammer Helsing2019-06-062-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Neither Qt::ToolTip nor Qt::Popup are single bits in Qt::WindowFlags, and do in fact include Qt::Window. This meant that when we or'ed them and did a bitwise and with QWindow::type(), we would match more types than just Qt::Popup and Qt::ToolTip. We would for instance get any Qt::Window as well, which meant the main window would be added to activePopups, leading to strange things happening, such as crashes and the main window closing unexpectedly. [ChangeLog][QPA plugin] Fixed a crash when closing multiple popups at once. Fixes: QTBUG-76124 Change-Id: I1a6a59e161a436604a7ac8ab824396481dc99a20 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit af9ec8a76d7e62444fadb518256fc58723fe5186)
| | | * Add changes file for Qt 5.12.4Johan Klokkhammer Helsing2019-05-281-0/+39
| | | | | | | | | | | | | | | | | | | | Change-Id: I3402a5297448aa4f4e0703ffbae897f00f0f6577 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| | | * Bump versionFrederik Gladhorn2019-05-231-1/+1
| | | | | | | | | | | | | | | | Change-Id: I76df7709ee1e21440c647a4419900800edfacac2
* | | | Doc: Replace example file lists with links to code.qt.ioTopi Reinio2019-07-091-0/+1
|/ / / | | | | | | | | | | | | | | | Task-number: QTBUG-74391 Change-Id: Iac93aa49419d8485fcc2076136c190533782e188 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | Fix compilation with C++20Marc Mutz2019-07-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Designated initializers (a C99 feature) made it into C++20, but the current code, which, presumably, was using a GCC extension, ran afoul of the rule that either all initializers must be designated ones, or none. Fix by naming the .plane member, too. Change-Id: Id302787331cfe0f2976250ec2c6b86a6946c8016 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | Bump versionFrederik Gladhorn2019-07-011-1/+1
| | | | | | | | | | | | Change-Id: Ib38bf7b8a1c8062696849c455c3974051bac6cb6
* | | Merge "Merge remote-tracking branch 'origin/5.13.0' into 5.13"Qt Forward Merge Bot2019-06-202-0/+119
|\ \ \
| * | | Merge remote-tracking branch 'origin/5.13.0' into 5.13Qt Forward Merge Bot2019-06-202-0/+119
|/| | | | | | | | | | | | | | | Change-Id: I3b0e0899cfcd738ddf45b4211f86e1079d6e4988
| * | | Client: Don't add all windows to activePopupsv5.13.0-rc3v5.13.0-rc2v5.13.0Johan Klokkhammer Helsing2019-06-062-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Neither Qt::ToolTip nor Qt::Popup are single bits in Qt::WindowFlags, and do in fact include Qt::Window. This meant that when we or'ed them and did a bitwise and with QWindow::type(), we would match more types than just Qt::Popup and Qt::ToolTip. We would for instance get any Qt::Window as well, which meant the main window would be added to activePopups, leading to strange things happening, such as crashes and the main window closing unexpectedly. [ChangeLog][QPA plugin] Fixed a crash when closing multiple popups at once. Fixes: QTBUG-76124 Change-Id: I1a6a59e161a436604a7ac8ab824396481dc99a20 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit af9ec8a76d7e62444fadb518256fc58723fe5186)
| * | | Client: Don't crash when the cursor theme fails to loadv5.13.0-rc1Johan Klokkhammer Helsing2019-05-211-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-75920 Change-Id: I29d84b487afb2a90b8a633abce2fcc39ca75adae Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
| * | | Add changes file for Qt 5.13.0v5.13.0-beta4Johan Klokkhammer Helsing2019-05-101-0/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I35b995cc2273a285b0c89be86841b5d38630b493 Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | | Doc: Fix link errorsNico Vertriest2019-06-181-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: I3854d7310259d1ce9f474d09f2b6dfdfbca8434a Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-06-151-1/+4
|\ \ \ \
| * | | | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-06-151-1/+4
|/| | | | | | |/ / | |/| | | | | | Change-Id: I3b4132c4824a5312e7af0ca5659bd34269cb02fe
| * | | Don't crash if we start a drag without dragFocusAleix Pol2019-06-141-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes origin will be nullptr, triggering a crash. [ChangeLog][QPA plugin] Fixed a crash that sometimes happened when starting a drag-and-drop operation. Fixes: QTBUG-76368 Change-Id: I8f4e6b05f073644834c3c72a8307dac5b897f626 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-06-084-2/+23
|\ \ \ \
| * | | | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-06-084-2/+23
|/| | | | | |/ / / | | | | | | | | Change-Id: Ie2469da765326e1e2da35c0311c0405b0a691bfa
| * | | Client: Don't add all windows to activePopupsJohan Klokkhammer Helsing2019-06-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Neither Qt::ToolTip nor Qt::Popup are single bits in Qt::WindowFlags, and do in fact include Qt::Window. This meant that when we or'ed them and did a bitwise and with QWindow::type(), we would match more types than just Qt::Popup and Qt::ToolTip. We would for instance get any Qt::Window as well, which meant the main window would be added to activePopups, leading to strange things happening, such as crashes and the main window closing unexpectedly. [ChangeLog][QPA plugin] Fixed a crash when closing multiple popups at once. Fixes: QTBUG-76124 Change-Id: I1a6a59e161a436604a7ac8ab824396481dc99a20 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * | | Compositor: Map touch ids to contiguous idsJohan Klokkhammer Helsing2019-05-222-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The protocol doesn't require this, but some clients seem to depend on it nevertheless. Fixes: QTBUG-75667 Change-Id: I47491c396d3c9193c7e51e13c7ca1586246e335c Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 869a38c082daf150a16b2abb230b420de3e4af31)
| * | | Fix compile error with -no-openglJohan Klokkhammer Helsing2019-05-291-0/+2
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Compositor] Fixed a build error when configured with -no-opengl. This is the same fix as in dev's 8663de3f, but leaves the QML APIs disabled. Fixes: QTBUG-76104 Change-Id: I9807144e0c0cf33d421c7c6adcb2664e1e67368c Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* | | Avoid creating decoration whilst Xdg Decoration is pending configureDavid Edmundson2019-05-233-1/+10
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently even when we are on on a compositor with SSDs we always create a decoration instance only to discard it. Not only is this somewhat wasteful, it creates sizing problems as the frame geometry changes, leading to constantly expanding windows on kwin. This patch assumes that if we have a decoration manager we should have no decoration until it is configured to do so. This is safe because we request a mode in the constructor, a compositor must reply with a configure event and we shouldn't be showing any buffers until the first configure event is received. Behavior without a decoration manager is unchanged Change-Id: I72b2cf4423fe6461ba405612262f76cefe4d6201 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Make QML module documentation follow Qt minor versionJohan Klokkhammer Helsing2019-05-061-4/+4
| | | | | | | | | | | | | | | | In 8b69d52d I forgot to also check for import statements in the .qdoc files. Task-number: QTBUG-74042 Change-Id: I385bbab50b3ffdee174f0542b3692d21ef57e08f Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" into ↵Liang Qi2019-05-039-51/+221
|\ \ | | | | | | | | | refs/staging/5.13
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-05-029-51/+221
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/client/qwaylandwindow_p.h Change-Id: Ic4104c48267d1682bb58d6b38afc833c39515eae
| | * Docs: Fix incorrect version for module importJohan Klokkhammer Helsing2019-04-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes an issue with the XdgShell documentation where the import statement at the top was too low (1.1 instead of 1.3) Later we should make it automatically follow the Qt minor version (see QTBUG-74042). Fixes: QTBUG-73256 Change-Id: Ib280998fe9c65168854e517b8555c5cd9b17cdd7 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| | * Client: Full implementation for frame callbacks (second try)Johan Klokkhammer Helsing2019-04-247-49/+218
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Wayland plugin now takes full control over delivering update request and implement frame callbacks for both egl and shm. [ChangeLog][QPA plugin] The non-blocking version of eglSwapBuffers is now used, if supported. This fixed a bug where minimized windows would block the event loop. [ChangeLog][QPA plugin] Windows that don't get frame callbacks from the compositor within 100 ms are now set as not exposed. This should stop most clients from rendering unnecessary frames to minimized or hidden windows. Also, when we relied on the QPA version of requestUpdate, we would sometimes deliver one update request while we were waiting for a frame callback. When we implement the fallback timer ourselves we can make sure we only deliver the fallback if there are no pending frame callbacks. QtQuick and other applications often depend on blocking swapBuffers to throttle animations. If the context's surface format has a non-zero swapInterval, try to emulate a blocking swap. Fixes: QTBUG-69077 Change-Id: I3c6964f31a16e9aff70b8ec3c5340e640a30fef2 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>