summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| | * Don't crash if view is deleted from surfaceDestroyed signalPaul Olav Tvete2018-11-161-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix regression introduced in 297bcd005c4205f69e1bf9e9dc565ab757cf0bac Fixes: QTBUG-71643 Change-Id: I769518a9ca13fcd13ea277c7fa8ac1885ca123ba Reviewed-by: Johan Helsing <johan.helsing@qt.io> (cherry picked from commit f890798053c7fa692bff7f8a3e96583dfcaba0cb) Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| | * Compositor: Fix crash after surface destructionJohan Klokkhammer Helsing2018-11-161-1/+1
| |/ | | | | | | | | | | | | | | | | | | | | Fixes a crash due to dangling pointer dereference in QWaylandQuickItem::inputMethodQuery. Fixes: QTBUG-71745 Change-Id: Id379779f23221e7de17423f75c3d78d7e794b7b9 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit d52e86e6f9bfde48b473dbe9d08e325d45388254) Reviewed-by: Andreas Cord-Landwehr <andreas.cord-landwehr@claas.com>
* | tests: minor fixup in tst_WaylandCompositor::comparingModes()Gatis Paeglis2018-12-091-1/+1
| | | | | | | | | | | | | | This patch amends d25b3b7f1059d5561bce3efe7ea903ea76d4e888 Change-Id: I413818f6cd4a77062287265f3bcb5db6170fc4d2 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Fix invalid QWaylandOutputMode comparison operatorJędrzej Nowacki2018-12-062-2/+25
| | | | | | | | | | | | Fixes: QTBUG-72288 Change-Id: I61fde92ea4275febbb4ec8c067280a4ca570d7c1 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | use new feature name xkbcommon_evdev -> xkbcommonGatis Paeglis2018-12-0517-59/+59
| | | | | | | | | | | | | | | | | | The xkbcommon configure logic was refactored in qtbase/c3a963da1f9e7b1d37e63eedded61da4fbdaaf9a. For more details see the relevant commit. Change-Id: Ic1aa26846ab8266c589f6e92dc8b81aba36df58a Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Scanner: Add include for QListJohan Klokkhammer Helsing2018-12-051-0/+1
| | | | | | | | | | | | | | | | QList is not included when built with QT_NO_QOBJECT defined. Change-Id: Iaf8874583e81b08a49ec246a5de0b62803c8ed7e Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io>
* | Merge remote-tracking branch 'origin/5.12.0' into 5.12Qt Forward Merge Bot2018-12-056-9/+118
|\ \ | | | | | | | | | Change-Id: Ica38060e6d624a7534660eabec604f6795970c95
| * | Don't crash if view is deleted from surfaceDestroyed signalv5.12.0-rc2v5.12.0-rc1v5.12.0Paul Olav Tvete2018-11-071-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | Fix regression introduced in 297bcd005c4205f69e1bf9e9dc565ab757cf0bac Fixes: QTBUG-71643 Change-Id: I769518a9ca13fcd13ea277c7fa8ac1885ca123ba Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| * | Only print deprecation warning when using deprecated shellsPaul Olav Tvete2018-11-072-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Avoids printing deprecation warnings for shells that are available by default but not actually used. In particular, avoids warning about wl-shell when using ivi-shell. Change-Id: Id075e97572e6ec876ad24f369808c61a479e9b07 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| * | Add changes file for Qt 5.12.0v5.12.0-beta4Johan Klokkhammer Helsing2018-11-061-0/+105
| | | | | | | | | | | | | | | | | | | | | Change-Id: Iffc0865a07cef3f6a21920aac698934cf0867644 Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * | Client: Explicitly send expose window on first configureDavid Edmundson2018-10-312-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before 88a0246a46c30e08e9730d16cf8739773447d058 we would always call QWaylandWindow::applyConfigure which in turn sends an expose event. Without that clients do not commit their initial buffer. This adds back the expose event on the first received configure. Fixes: QTBUG-71509 Change-Id: Ica39bb23245957948e1e1f75caf4f16f7b086ef7 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | Fix compilation with gcc 4.8Ville Voutilainen2018-12-044-10/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC 4.8 doesn't like QPointers in signal connections. Also, Default Member Initializers for aggregates are C++14, so we need to write a constructor to make a class with DMIs work in C++11. Change-Id: I567c60a8081fa2f268517ec747bd6534674bcce5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Fix unused variables, in preparation for adding warning_cleanSergio Martins2018-11-301-3/+1
| | | | | | | | | | | | | | | | | | | | | The QByteArray one seems like an actual bug. Change-Id: I11de9c7a10cdd3e70f9f6af18bcce3bd3bf54320 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | Fix build due to missing QDebug includeSergio Martins2018-11-301-0/+1
| | | | | | | | | | | | | | | | | | | | | Build was failing on Archlinux Change-Id: I3cf9a367a099cd365a2de6579c7ef5585cd9be56 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | Client: Fix incorrect enter serial in set_cursorJohan Klokkhammer Helsing2018-11-211-4/+5
| | | | | | | | | | | | | | | Change-Id: Ibeacc5218acbd6003b85811a175ed00fd62a4b51 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Merge remote-tracking branch 'origin/5.11' into 5.12Qt Forward Merge Bot2018-11-160-0/+0
|\ \ \ | | |/ | |/| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Iff5aaed3b02a2f59d1ffc88e2b2375da685b100e
| * | Bump versionOswald Buddenhagen2018-11-081-1/+1
| | | | | | | | | | | | Change-Id: I2057039a7d4cfccf1b49906b446f4ee7911d8c76
* | | Client: Rename m_topmostPopup to clarify its goalDavid Edmundson2018-11-144-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is used when creating new grabbed popups to ensure they are only created on the topmost grabbing popup as per the specification. Non-grabbing popups don't have this restriction. Change-Id: I8e2b8cd0f091688c847f81f2e5d33ce2f0df96a1 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | Client: Don't require an input device for non-grabbing popupsDavid Edmundson2018-11-144-26/+40
| |/ |/| | | | | | | | | | | | | | | | | It's valid to create a non-grabbing XDG-popup, such as a tooltip, before an input event. The current guard should only apply for grabbing popups, otherwise tooltips created early are turned into XDG-toplevels resulting in incorrect positioning. Change-Id: I5bb59a68964ef2375c81e8b4e1a73361b9d2cbcc Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Merge 5.12 into 5.12.0Oswald Buddenhagen2018-10-3012-20/+154
|\ \ | | | | | | | | | Change-Id: Ic7b7999f42b1867982b9410efb5224d68e9443f8
| * | Client: Don't spam expose eventsJohan Klokkhammer Helsing2018-10-263-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | Only send expose event when the geometry actually changed. Change-Id: Ic06986ce5d11e0ff7a842303f57093b8ff25b9f6 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org>
| * | Client: Don't attach buffers to unexposed windowsJohan Klokkhammer Helsing2018-10-2612-19/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QBackingStore::flush is sometimes called with an unxeposed window, in that case, don't attach the buffer to the wl_surface immediately, as that causes protocol errors with xdg_shell. Flushed buffers are instead stored until we get the first configure event. [ChangeLog][QPA plugin][xdg-shell] Fixed a bug where buffers were sometimes attached and committed before the first configure event, causing protocol errors. Fixes: QTBUG-71345 Change-Id: If9409d97bd25f6b13940c56141920a664c349c8e Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org>
* | | Client: Fix fullscreen regression on wl-shellJohan Klokkhammer Helsing2018-10-281-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | The code for isNormal was wrong, so set_toplevel (which clears fullscreen state) would be sent unless the window was both maximized and fullscreen. Fixed it and made it a little bit more readable. Change-Id: Icaa52d3a058df064a0bd1164119af3f511cb4220 Fixes: QTBUG-71350 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org>
* | Compositor: Add const version of QWaylandQuickItem::inputRegionContainsJohan Klokkhammer Helsing2018-10-222-1/+12
| | | | | | | | | | Change-Id: I649149e2cee24f8296bf24a22ee8bb865feea9c6 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Compositor: Emit signals after applying pending surface statev5.12.0-beta3Johan Klokkhammer Helsing2018-10-184-53/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Compositor] Fixed a bug where some signals on QWaylandSurface were emitted before all double buffered state had been applied. Restructures QWaylandSurface::commit so no signals are emitted until all state mutations are completed. Adds a test to confirm that pending state is applied at once. Also fixes opaqueRegion, which is documented to be double buffered as well, but the old implementation set it immediately. Change-Id: I1c4dfea7c83dd9ee84dc8c03e6d92e2924bf2fad Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Clean up ShmServerBuffer's unused and shadowing membersv5.12.0-beta2Johan Klokkhammer Helsing2018-10-092-10/+10
| | | | | | | | | | Change-Id: I588ccc782f593ec83a87f75bd88d98f873366395 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Client (xdg-shell): Only restore normal size when not maximizedJohan Klokkhammer Helsing2018-10-092-8/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | kwin and perhaps other compositors sometimes send questionable configure events with state set to maximized and size == {0,0}. Previously, we would then restore the m_normalSize, which would give us a maximized window with the size of a windowed (normal) one. A size of zero usually means that it's up to the client to decide, which makes sense for non-maximized windows, but not so much for maximized ones. This is what the protocol spec says about the maximized state: The surface is maximized. The window geometry specified in the configure event must be obeyed by the client. It's fixed in the dev version of kwin, but until then, let's be on the safe side and only resize the window if things make sense. [ChangeLog][QPA plugin] Fixed a bug where maximized windows would resize to their unmaximized size if the compositor sent an invalid configure event. Change-Id: I2371b29c82426ac48cd1c18c14c3dd0fe4f2250e Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Client: Fix cursor size becoming bigger and bigger when switching screensJohan Klokkhammer Helsing2018-10-081-3/+4
| | | | | | | | | | | | | | | | | | | | | | cursorSize was a static which was multiplied with the dpr each time loadCursorSize was called resulting in a bigger and bigger cursor size. Fix it by making the static constant. Change-Id: Ie23cf0cc0d6c13721feecebe214d7c794be35077 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org>
* | Don't send ivi_surface configure events with negative sizeJohan Klokkhammer Helsing2018-10-041-0/+4
| | | | | | | | | | | | | | Similarly to how we don't do it for xdg_shell or wl_shell. Change-Id: I61cd453858c9fdff148364f4dfb85c345943725c Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Avoid spurious move events after configure callDavid Edmundson2018-10-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Whilst wayland can't actually move the window in a QWindow::setGeometry call the previous behavior was to keep it so that it appeared to the client that it had moved. The new behavior is non-consistent, QWindow::setPosition will update QWindow::position until the first configure call is received at which point it will move back to 0,0. This then generates a QMoveEvent for the window that hasn't moved. This patch keeps the QWindow::position consistent with the user request and doesn't generate move events. Change-Id: Ifb1433b3902d44c1b2e43036bc1805a6e00128fb Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Client: Remove failing assert on compositors without wl_data_deviceJohan Klokkhammer Helsing2018-10-031-1/+0
| | | | | | | | | | | | | | | | | | Some compositors don't advertise wl_data_device_manager support, and the client has no control over this, so the assertion doesn't make sense. Returning nullptr in that case should be fine. Change-Id: If0b145326d074ea4ebf8f5a12654962d56012a2d Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Update plugins.qmltypesv5.12.0-beta1Kai Koehne2018-10-012-10/+473
| | | | | | | | | | | | Task-number: QTBUG-70264 Change-Id: Idd4c6b2b7bb032241555a08e2b3e420b1312aa35 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Compositor: Fix crash after surface destructionJohan Klokkhammer Helsing2018-10-011-1/+1
| | | | | | | | | | | | | | | | Fixes a crash due to dangling pointer dereference in QWaylandQuickItem::inputMethodQuery. Change-Id: Id379779f23221e7de17423f75c3d78d7e794b7b9 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Compositor: Remove WaylandCursorItem.scaleCorrectionJohan Klokkhammer Helsing2018-10-011-5/+4
| | | | | | | | | | | | | | It's an implementation detail, so shouldn't be exposed as a property. Change-Id: Ib0a5b7dd92403cf45e1067710d1aad330a7a340f Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Compositor: Test empty and nullptr input regionsJohan Klokkhammer Helsing2018-09-261-1/+22
| | | | | | | | | | Change-Id: Iddcf6cbddd74dc41d8c14b1da06f7e320de774b4 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Client: Fix deadlock for xdg-shell when makeCurrent is called earlyJohan Klokkhammer Helsing2018-09-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | If makeCurrent was called before the window was exposed, it would disable resizing, which would block the window from applying the configure which the client needs to ack in order to be exposed. Fixes the issue by locking resizing only if the window is exposed. Change-Id: I0e6b30bc4b08886fb95d502cac0b735d4bb732d2 Fixes: QTBUG-70646 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Compositor: Add test for wl_surface::set_input_regionJohan Klokkhammer Helsing2018-09-261-0/+35
| | | | | | | | | | Change-Id: I9b110647c054c897fa2a6d6fc6f392c981845f09 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Add server buffer integration using Linux dma-bufPaul Olav Tvete2018-09-2121-5/+1084
| | | | | | | | | | | | Fixes: QTBUG-70494 Change-Id: Iaa4990fe9d39a1f9fb81f5e5f19039aa2e52dcac Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Add virtual QtWayland::ServerBuffer::bufferInUse()Paul Olav Tvete2018-09-215-0/+12
| | | | | | | | | | | | | | | | This allows the compositor to reclaim unused graphics memory when a buffer is no longer used by clients. Change-Id: Ia0269608019c5120da8c091c81e165411b563554 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Add logging category for hardware integrationsPaul Olav Tvete2018-09-202-0/+2
| | | | | | | | | | | | | | qLcWaylandCompositorHardwareIntegration, "qt.waylandcompositor.hardwareintegration" Change-Id: I977ccc53f51b24b58acee08c424b806868550eac Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Change compositor categorized logging namespacePaul Olav Tvete2018-09-203-6/+8
| | | | | | | | | | | | | | | | | | [ChangeLog][Compositor] Add new categorized logging namespace "qt.waylandcompositor" and rename "qt.compositor.input.methods" to "qt.waylandcompositor.inputmethods" Change-Id: Id861e527e3eb8582fdc96f8497fad0cba0766847 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Don't use members of wl_resourceJohan Klokkhammer Helsing2018-09-189-16/+16
| | | | | | | | | | | | | | | | | | When we switch to only including core wayland headers, wl_resource will be an opaque type. Use the getters and setter functions instead. Task-number: QTBUG-70553 Change-Id: I7d84d48a4ee3586f231a331cd15716686dcee775 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Update xdg-shell-unstable-v5.xmlJohan Klokkhammer Helsing2018-09-171-17/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | The old xdg-shell-unstable-v5.xml was malformed, and was missing some <description> tags. The updated version passes wayland-scanner run with --strict. Hopefully we can start to use it soon. Otherwise, it's just documentation fixes. Change-Id: Id28ad7196643156cd22407e12ed7ff1e7fb34ce6 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
* | Revert "Upgrade wayland.xml to version 1.10.0"Johan Klokkhammer Helsing2018-09-172-662/+85
| | | | | | | | | | | | | | | | | | | | | | | | Since we're using the deprecated ways of including wayland (wayland-server.h instead of wayland-server-core.h), we can't upgrade wayland.xml to a version that's newer than the system libwayland. Our minimum supported version is 1.6. This reverts commit 4d2106d4b6ed1a088834a8fec9c6a47e5a67d4e8. Fixes: QTBUG-70528 Change-Id: I102cb215a40a1aaaeba6f463200eefc3be653c52 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Compositor: Rename addSocketFd to addSocketDescriptorJohan Klokkhammer Helsing2018-09-172-4/+4
| | | | | | | | | | | | | | | | Generally we prefer not to use abbreviated names. It now also matches what's in other Qt modules. Change-Id: I67d54961bebf93760780be54761c6122069f1e1d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Remove ifdefs for unsupported libwayland versionsJohan Klokkhammer Helsing2018-09-174-28/+0
| | | | | | | | | | | | | | The ifdefs were for version 1.2.0. Change-Id: Ie58745c7cf4c0fba45bc5203d24e9913d3a8b8ce Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Compositor: Use Q_PRIVATE_SLOTs in QWaylandOutputJohan Klokkhammer Helsing2018-09-173-37/+34
| | | | | | | | | | Change-Id: I25a8feb0919dcccc30d2f23d619e0ba5d4c214ff Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Remove unnecessary function declarationJohan Klokkhammer Helsing2018-09-171-5/+0
| | | | | | | | | | Change-Id: I55a7b579babfa99707e3e4b4cf15c34f48459825 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Compositor: Rename QWaylandKeyboard::toScanCode to keyToScanCodeJohan Klokkhammer Helsing2018-09-173-4/+4
| | | | | | | | | | | | | | Since the key argument is an int, the signature looks ambiguous otherwise. Change-Id: I732971437ff7354ad3863ecfe42c779a06a84d69 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Remove confusing elses after returnsJohan Klokkhammer Helsing2018-09-142-8/+4
| | | | | | | | | | Change-Id: I0ba39df637f6e5ce93ba57f40f279c81532e9289 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>