summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-242-1/+2
|\ | | | | | | | | | | | | Conflicts: sync.profile Change-Id: I6f6d44ec285d37e64e430303ef9a87ac7aaf3eb9
| * Mock client: Add missing include for QMapJohan Klokkhammer Helsing2019-09-211-0/+1
| | | | | | | | | | | | | | Task-number: QTBUG-78177 Change-Id: I123e129f09ce8599e68be710147b07235ae9462a Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
| * Fix wrong target name for tst_client_fullscreenshellv1Johan Klokkhammer Helsing2019-09-201-1/+1
| | | | | | | | | | | | Task-number: QTBUG-78177 Change-Id: Id44794523511241b408e79383e438e52f769d62a Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
* | Client: Test that wl_touch.up events don't split touch framesv5.14.0-alpha1Johan Klokkhammer Helsing2019-09-201-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have a workaround for Weston not sending wl_touch.frame events after the last wl_touch.up event. It calls Touch::touch_frame to generate a fake event. The problem, however, is that it used to erroneously do this on wl_touch.up events even when it was not for the last touch point. This in turn, lead to extra frame events being inserted in the middle of a touch sequence, effectively splitting up one touch frame into multiple. Accumulated touch state would be handled prematurely, preventing wl_touch.cancel from working correctly for instance. This tests that we've stopped doing that. Change-Id: Ic545bbb18c23b827e5fa07a642a374094d720dae Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Add client test for multi touch motionJohan Klokkhammer Helsing2019-09-173-0/+86
| | | | | | | | | | | | | | | | | | Make sure touchPoint order doesn't change even though the compositor event order does. Task-number: QTBUG-77014 Change-Id: If6b8a930344836ca52cc12fe7f29c8ac863d81ba Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Blacklist tst_seatv4::animatedCursor() in b2qtLiang Qi2019-09-171-0/+2
| | | | | | | | | | | | Task-number: QTBUG-78317 Change-Id: I66e35782470cedd4d3cfeed6ffdfd8d54bc0ba26 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* | Compositor: Expose QPointF version of inputRegionContainsJohan Klokkhammer Helsing2019-09-161-0/+5
| | | | | | | | | | | | | | | | | | QWaylandSurface::inputRegionContains(const &QPointF) was added in a patch release. Expose it here and start testing it. Task-number: QTBUG-77457 Change-Id: I9e5e487e1d93a2b1873a7e219eed9ef6b0a418b5 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
* | Add client test for floating point touchJohan Klokkhammer Helsing2019-09-161-0/+32
| | | | | | | | | | | | Task-number: QTBUG-77457 Change-Id: I49df80f3e00d349fed273363cd2625b841c085c5 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Johan Klokkhammer Helsing2019-09-165-2/+238
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/client/qwaylanddatadevice.cpp src/client/qwaylandinputcontext.cpp src/client/qwaylandinputdevice.cpp src/client/qwaylandwindow.cpp src/compositor/compositor_api/compositor_api.pri src/compositor/compositor_api/qwaylandquickitem.cpp Change-Id: Ice0d8c7d869c9c46113d6ee6ba3adf895a71d58f
| * Add client test for floating point mouse pressJohan Klokkhammer Helsing2019-09-101-0/+25
| | | | | | | | | | Change-Id: Ia7cfb1bc86945e08a2ff2c794afb405110e819f9 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * Client: Add test for starting a drag operation without input focusJohan Klokkhammer Helsing2019-09-091-2/+19
| | | | | | | | | | | | | | | | This used to crash the client. Task-number: QTBUG-76368 Change-Id: I855f3bda15b4b2bccbdb2aa8239e26c0eecf7cb3 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * Add client test for xdg-decoration-unstable-v1Johan Klokkhammer Helsing2019-09-033-0/+194
| | | | | | | | | | | | | | | | And verify that we don't create decorations prematurely. Change-Id: I621631f0c355529e5afb6a615f909f18c2a4b509 Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Johan Klokkhammer Helsing2019-09-031-0/+1
|\| | | | | | | | | | | | | | | Conflicts: src/client/qwaylandinputdevice.cpp src/client/qwaylandwindow.cpp Change-Id: Ifd64debc484197829d2fe412afa98c29b382efa5
| * 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>
* | Remove usages of deprecated APIs of QWheelEventSona Kurazyan2019-08-282-45/+17
| | | | | | | | | | | | | | | | | | | | | | - Replaced the usages of deprecated QWheelEvent::delta() and QWheelEvent::orientation() with QWheelEvent::angleDelta(). - Removed the tests for deprecated APIs. Task-number: QTBUG-76491 Change-Id: I2f9a53d3236bce8ba6cee66ec1b0b933d50518aa Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Client tests: Add test for a simple wl_touch tapJohan Klokkhammer Helsing2019-08-273-0/+98
| | | | | | | | | | Change-Id: I35aec950da0ac0d10cf1fa0c4bc1f56ba232cf89 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Client tests: Add touch infrastructure and simple testJohan Klokkhammer Helsing2019-08-275-7/+54
| | | | | | | | | | | | | | | | | | | | This doesn't test much, but adds the infrastructure needed for more thorough tests later on. More or less exactly matches the mocking for wl_keyboard and wl_pointer. Change-Id: I563bb9be7ccaaf0aa83611e84d051cc307455ccb Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Merge dev into 5.14Kari Oikarinen2019-08-278-10/+238
|\ \ | | | | | | | | | Change-Id: Iaf121f1db2fea08dd4ce16136b8d68c94b182084
| * | Compositor: Add xdg-output unstable v1 supportPier Luigi Fiorini2019-08-266-3/+224
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We already have a client-side implementation in the QPA plugin, and now we add the server-side implementation. In order to have a nice declarative API, we let users create a XdgOutputV1 instance and then associate it with the zxdg_output_v1 object when it is requested by the client. If the user forgets to create XdgOutputV1 beforehand we post an error to the client. To anticipate protocol version 3, we send zxdg_output_v1.done when we send wl_output.done. The multi-output example is extended using this protocol. [ChangeLog][Compositor] Added support for xdg-output unstable v1 Wayland extension. Change-Id: I1ec5913d8330cc01d7d634d05a289f4dc8b4fd22 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| * | Remove usages of deprecated APIsSona Kurazyan2019-08-201-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Make the code related to deprecated QWaylandWlScaler compile conditionally, only when QWaylandWlScaler is enabled. - Replace the usages of deprecated APIs by the corresponding alternatives. - Fix the tests to compile when the deprecated APIs are disabled. Task-number: QTBUG-76491 Task-number: QTBUG-76541 Change-Id: Ieba98858e970868a2cbc97df2d06bae346e30d7a Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| * | Make it possible to build only the compositor moduleJohan Klokkhammer Helsing2019-08-192-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reduces unnecessary coupling between the compositor and client modules. [ChangeLog][Compositor] The compositor module no longer depends on the client module. Change-Id: I108e56960835b6c31c450d5ae08a0a101af9422b Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Client tests: Fix incorrect test for keyboard capabilityJohan Klokkhammer Helsing2019-08-261-1/+1
| | | | | | | | | | | | | | | Change-Id: I4e35e86f489941dcce986ba416f3fe55d968d186 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Client tests: Add missing cleanup for keyboardsJohan Klokkhammer Helsing2019-08-261-0/+3
| | | | | | | | | | | | | | | Change-Id: Ia085dbe34b6e3b7cf83b4f55c265e12b1145ab8a Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Client tests: Remove redundant pointer helper functionJohan Klokkhammer Helsing2019-08-261-7/+0
| | | | | | | | | | | | | | | Change-Id: If5d435a227b54f566f121331385e849b615fb615 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Client tests: Upgrade tests to wl_seat v5Johan Klokkhammer Helsing2019-08-265-20/+43
|/ / | | | | | | | | | | | | | | | | This means that pointer events need to be followed by frame events. wl_seat version 4 is tested by the "tst_seatv4" autotest. Change-Id: Ifa8e6d6edc998853be7cd901003e619029fc6f68 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Merge "Merge remote-tracking branch 'qt/5.13' into dev"Paul Olav Tvete2019-08-191-6/+5
|\ \
| * | Merge remote-tracking branch 'qt/5.13' into devPaul Olav Tvete2019-08-161-6/+5
| |\| | | | | | | | | | Change-Id: Ief5f30fc1dbd0e6531b19e723057b06e9bd419b4
| | * Merge remote-tracking branch 'qt/5.12' into 5.13Paul Olav Tvete2019-08-141-6/+5
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/compositor/configure.json sync.profile tests/auto/auto.pro Change-Id: Ia6d1512aa9ad49ac7f92ae88f23026dc0ee2ccc5
| | | * Fix the build when libs didn't get builtLiang Qi2019-08-121-2/+5
| | | | | | | | | | | | | | | | | | | | Change-Id: I641a1a80edd0861049d079422eef28b095fc26b3 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* | | | Add compositor test for pixel formatsJohan Klokkhammer Helsing2019-08-171-16/+46
| | | | | | | | | | | | | | | | | | | | Change-Id: I08072c03f7283fae16294b8c9dd6df0c12d6496f Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
* | | | Compositor: Add idle-inhibit unstable v1 protocolPier Luigi Fiorini2019-08-164-1/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allows disabling of screen blanking on a per-surface basis. [ChangeLog][Compositor] Added support for idle-inhibit unstable v1 Wayland extension. Change-Id: I3cd392f9e1bb3604691f2a496579aad3b87383b6 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | | Compositor: Test output available geometryPier Luigi Fiorini2019-08-161-0/+17
|/ / / | | | | | | | | | | | | | | | | | | Increase coverage by implementing a test for the available geometry. Change-Id: Idaba38043dadea69d7494ff9caa944e224e4c228 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | Test the exact window sizePier Luigi Fiorini2019-08-151-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure we test exactly the size we expect. We used frameGeometry() to take client-side decoration margins into account, but actually frameMargins() returns exactly that, this means we can compute the actual size that we want to test. Change-Id: I2f41ffdb2aa2e3a4253a1ff7038c4bc2e43cdf98 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | Use some qExchange()Marc Mutz2019-05-171-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes the code more compact and avoids any doubts regarding accesses to the underlying container under iteration, if any. Change-Id: I6cf8a6113f182ae5c4401cb44fce2a3904c67489 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | Eradicate Q_FOREACH loops [1/2]: trivial casesMarc Mutz2019-05-212-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In this patch, we port Q_FOREACH loops to C++11 ranged-for loops. All cases are trivial in the sense that either the argument is already const or is trivially marked as const, either by qAsConst(), or, in the case of rvalues, by storing to a const auto temporary first. In addition, all loop bodies are clear enough to confirm that the container we iterate over is not changed under iteration. This does not exclude cases where a loop is prematurely exited just after calling a modifier on the container, as that is safe, if not especially elegant. Change-Id: I87a63f07797437d421567d60e52305391a3c4f21 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | xdg-shell v6 client test: use QTRY_COMPARE instead of QTRY_VERIFYJohan Klokkhammer Helsing2019-05-141-2/+2
| | | | | | | | | | | | | | | | | | Change-Id: I5f04676e0090bcb849a765ae5365845f199de987 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Client: Implement primary-selection-unstable-v1Johan Klokkhammer Helsing2019-05-107-2/+502
| | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QPA plugin] Added support for middle mouse pasting through the primary-selection-unstable-v1 protocol. Fixes: QTBUG-66008 Change-Id: I7c8fb9aa2c856f5b6794aeab1ee75d80cad05dcd Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devJohan Klokkhammer Helsing2019-05-079-10/+303
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/client/qwaylanddisplay_p.h src/client/qwaylandwindow.cpp Change-Id: I50eb5c83a8b81e4bdb032b68d41f429b17d0a74d
| * | Client: Fix reverse screen orderJohan Klokkhammer Helsing2019-04-291-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QPA plugin] Fixed a bug where QGuiApplication::screens() and primaryScreen() would return initial screens in the reverse order they were added by the compositor. QGuiApplication::primaryScreen() will now return the first output added by the compositor. Calling forceRoundTrip in registry_global() meant it would call itself recursively if there were additional wl_output events in the queue. This in turn meant the screens got added in the reverse order. Instead we now add the screen to a list of not yet initialized screens and add it properly when we've received the required done events (wl_output and possibly zdg_output_v1). This also has the added benefit of wl_output hot plugging not calling forceRoundTrip(). Fixes: QTBUG-72828 Change-Id: I35c6959d6c219f65fd19d571a25b5a6cdb3f741b Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
| * | Remove tst_WaylandCompositor::keyboardGrab from blacklistJohan Klokkhammer Helsing2019-04-261-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's not clear to me why it was failing in CI on Ubuntu 14.04 back in 2015. I can't get it to fail on my machine, and the linked logs in the bug report are no longer available. Let's try to remove the blacklist and fix it if it starts failing again. Fixes: QTBUG-45108 Change-Id: I7a73bdbcee2e544480af71db135ecd73122f747c Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
| * | client: rework input method handlingGatis Paeglis2019-04-156-3/+294
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The existing solution was parsing compose tables on startup, it is better to lazy initialize the compose table/state on a first key press, instead of doing it on an application startup. This logic is inside of the compose input plugin. The existing code did not utilize correctly how Qt handles complex text input. It used libxkbcommon-compose APIs to compose user input and then passed the same input again to QPlatformInputContext (from QWaylandInputDevice::Keyboard::sendKey), which was erroneous. This also means that code was forcing "xkb compose", and did not respect QT_IM_MODULE at client-side. From commit that added compose key handling (57c4af2b18c0fb1d266b245a107fa6cb876b9d9e): "We should expand on it in the future to handle things like resetting the compose state on text field switching". This is now handled by properly utilizing Qt IM framework. Converted QWaylandInputDevice::Keyboard::sendKey into a class member function to avoid adding one more arg (mXkbContext) to the already long argument list. That whole function should be simplified, but that is out-of-scope for this patch. The reworked code uses qxkbcommon support library to reduce code duplication between platforms and to unify behavior. Some users might mistakenly think that this patch introduces a regression with Qt on KDE, but it is actually a KWin/Wayland compositor bug: https://bugs.kde.org/show_bug.cgi?id=405388 The work around on KDE is to use QT_IM_MODULE at client-side to select input method, as KWin compositor over the wire supports only the qtvirtualkeyboard module. Setting this envvar is not someting out of the ordinary for users on Linux. Input method handling at compositor-side is new feature and clearly not very well supported yet. Task-number: QTBUG-65503 Change-Id: Ie511d950396fa2fb6cbe6672996cee9791f3ab11 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| * | Client tests: Fix tst_xdgShell::pongs when run as the only testJohan Klokkhammer Helsing2019-04-111-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The shell integration is initialized lazily, so it's not possible to send ping events to the client before the first window has been initialized. This adds a simple window to the pong test. Change-Id: I13b4a9cb802b7abe18bfc23cf8c75eb873ded3ca Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * | tst_xdgshell::showMinimized: Really make sure the window was createdJohan Klokkhammer Helsing2019-04-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The surface(), may be a leftover cursor surface from earlier tests. Check for an xdgSurface instead, as those are verified to be cleaned up between tests. Change-Id: I6a2b402130814e896d335787fcb90fd8d57cafb7 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Client: Add support for animated cursorsJohan Klokkhammer Helsing2019-05-021-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QPA plugin] Added support for animated cursors. Previously we would just show the first frame of the animation. Fixes: QTBUG-48181 Change-Id: Ie06bff8950678b5ff7b7e2e50915c85905a1200b Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Client: Add test for surfaces created by application codeJohan Klokkhammer Helsing2019-05-011-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | This used to crash the client. Task-number: QTBUG-73801 Change-Id: I04d1c6fcc45b6d90f2ac28844e753da2cdf3ab08 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Compositor: Don't require OpenGL to build the QML APIsJohan Klokkhammer Helsing2019-04-042-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Compositor API] The compositor API now works without OpenGL support. This makes the compositor API work with shared memory clients only. If OpenGL clients connect they will currently punch holes in the compositor window, but fixing that is out of scope for this patch. Fixes: QTBUG-74896 Change-Id: I6c1ba82f28ba9edecf380e471124e15d16f9518e Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | New texture sharing protocol and infrastructurePaul Olav Tvete2019-03-282-0/+244
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a higher level protocol on top of the server buffer extension, providing an easy way for Qt Quick applications to use the shared textures. [ChangeLog] Added protocol and Qt Quick image provider for sharing textures in graphics memory between compositor and multiple clients. Task-number: QTBUG-73822 Change-Id: Idc41b3479d6ca37be35d9ccd7b89e9994ff17f8f Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | Merge remote-tracking branch 'qt/5.13' into devPaul Olav Tvete2019-03-2113-76/+558
|\| | | | | | | | | | | Change-Id: I3dc204fcaa71c01a80b0c622443012eb07964431
| * | Client xdg-shell: Add test for switching popupsJohan Klokkhammer Helsing2019-03-053-1/+94
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-73524 Change-Id: Ie9a13aeae52a7576699147e5515e2ed32a3a4d1c Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
| * | Client: Don't send illegal wl_pointer.set_cursor requestsJohan Klokkhammer Helsing2019-02-272-4/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | When the cursor focus' wl_surface is destroyed, or the pointer leaves a surface, we have to reset the enter serial to avoid sending illegal set_cursor requests. Change-Id: I0c886e4123acb4aebd325b07bf15b9d3fa8589da Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>