summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Client: Set XdgShell size hints before the first commitDavid Edmundson2021-05-101-2/+1
| | | | | | | | | | | | | propagateSizeHints is only called in QWindow we have platform window and minimumSizeHint is then sent. We also need to send existing hints when we create the shell window. Sending them when we apply configure is too late, we need these hints available for the compositor to correctly configure the window. Change-Id: I6cbb294b11db06ecd87535fa4816bb8ad34a29c6 Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org> Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
* doc: Add a note to hasProtectedContent() functionEskil Abrahamsen Blomfeldt2021-05-061-0/+3
| | | | | | | | | This was added as an enabler to facilitate use cases where the driver can provide protected buffers. Since it will always return false with the existing backends, we should notify users. Change-Id: I85da0b44dfb5c827bee784a79d2b7f395d1df574 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Export wl-shell integrationElvis Lee2021-04-291-11/+25
| | | | | | | | Support wl-shell integration as a module for external build Change-Id: I6cd5e5c35ff1162943ffdcbe7ff834f30783e5a8 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Export wayland-egl compositor hwintegrationElvis Lee2021-04-298-14/+36
| | | | | | | | Support wayland-egl compositor hwintegration as a module for external build Change-Id: I794ad4eb38fc2dda31ace1b0eeb2e001020d0956 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Export wayland-egl client hwintegrationElvis Lee2021-04-2816-42/+59
| | | | | | | | | | | Support wayland-egl client hwintegration as a module for external build. Change-Id: I3e82838d0cc89d4bb1435b835dc1e9b592319ddf Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com> Reviewed-by: Jaeyoon Jung <jaeyoon.jung@lge.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* client: Remove unused header fileEskil Abrahamsen Blomfeldt2021-04-281-62/+0
| | | | | | | | | | The qwaylandegldisplay.h file is not included from anywhere, and also doesn't compile. This is currently in the way of moving the code into a library, as it will then be attempted to be compiled as part of the headersclean check. Change-Id: Ib382f220977f751186c485cc0d866da2587f937d Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* CMake: Remove GENERATE_METATYPES usageMaximilian Goldstein2021-04-271-8/+0
| | | | | | | We now generate metatypes by default and every instance of GENERATE_METATYPES now causes a warning. Change-Id: I114af393fb216092c09a37730fde481e409b6aa4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Docs: Add "instantiates" keywordsKai Uwe Broulik2021-04-2617-0/+21
| | | | | | | | | Document what the corresponding C++ class for any given QML item is, like it's done in Qt Declarative. Pick-to: 5.15 Change-Id: I015565f88cb457f1e73dd7c2c54edff3505db395 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* doc: Add Qt 6 porting information for Qt Wayland CompositorEskil Abrahamsen Blomfeldt2021-04-261-1/+12
| | | | | | | | | Better late than never: Add the previously advertised stuff. Pick-to: 6.1 6.0 Change-Id: I5e38f792837788d7c42851149ae4b471b5065dff Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Scanner: Remove global version checkVlad Zahorodnii2021-04-261-3/+1
| | | | | | | | | | | | libwayland-server ensures that the requested version is less than or equal to the global version. This change removes the global version check to simplify the generated code and reduce memory usage footprint, however the latter shouldn't be that noticeable. Change-Id: Idd76098e588f3f4ca1be960d20a16994726702af Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Allow seat selectionElvis Lee2021-04-262-13/+19
| | | | | | | | | | Add a virtual method QWaylandCompositorPrivate::seatFor and move the body of QWaylandCompositor::seatFor there. It allows a custom seat selection for a given event by re-implementing seatFor in the private class. Change-Id: I23259e8b6532e3e4d624d8aaf8c71faa5018399e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add missing define guardsSamuli Piippo2021-04-221-0/+2
| | | | | | | | | Ammend cca1b94190a094b5d1d7ce492b6533e2d330c5e8 to use m_composeState only if xcbcommon is available. Pick-to: 5.15 Change-Id: I48332b15def3282c5bda3e1c7c393ea7e9849cbe Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
* client: Fix frame callback leak when window unexposedEskil Abrahamsen Blomfeldt2021-04-221-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we get a new update while already waiting for a frame callback and the window is unexposed, we would previously destroy the callback and issue a new one. But if the window is unexposed, the compositor may accumulate these and answer all the callbacks when the window is shown again. This may cause overflows and the client to be killed by the compositor in some cases where the number of pending updates is too high. To avoid this, we skip requesting new callbacks if there is already one pending and the window is unexposed. When the window is re-exposed, the existing pending callback will be triggered anyway, and until then there is no need to repeatedly verify that we still cannot render. One risk is that there may be compositors which never issues a response to the callbacks requested while the window was unexposed. But that would probably be in conflict with the specification and possibly cause other issues as well. The patch was tested with Weston and Mutter, and seems to improve behavior in both of these at least. [ChangeLog][Client] Fixed a bug where Wayland clients would continuously request frame callbacks while unexposed, which potentially caused crashes on some compositors. Fixes: QTBUG-81504 Change-Id: I16dbe51cc5a9acf1f49b4070af91e7f2c8996122 Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Remove bogus warning about missing wayland-eglEskil Abrahamsen Blomfeldt2021-04-211-5/+0
| | | | | | | | | | | For some reason, we always print a confusing message that the wayland-egl backend is not built when configure is run. The warning is incorrect, and since it is not worth the trouble to find out why it isn't working, we just remove it. Fixes: QTBUG-92925 Change-Id: I01e35f21180249c1ae0db73dc3541365fb2eff41 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Client: get correct window content geometryJan Grulich2021-04-191-2/+12
| | | | | | | | | | | We have to apply geometry where we don't include shadows, because we need them to be ignored in some scenarios. Also, with geometry being already shrunk by the size of shadow margins, we have to avoid doing it again, otherwise we can accidentally make our window smaller every time we update its size or state. Change-Id: I0e26ee1be8d918913125ee7f7c97de56ccc797cf Reviewed-by: David Edmundson <davidedmundson@kde.org>
* CMake: Fix qml module version to use the repo project versionAlexandru Croitor2021-04-157-7/+7
| | | | | | | | | | | Use PROJECT_VERSION instead of CMAKE_PROJECT_VERSION, so that the repo project version is used in a top-level build, rather than the version of the qt5 project. Pick-to: 6.1 6.0 Task-number: QTBUG-92861 Change-Id: Ie829f66433d4edd7ce2d68376cecf38d6b1b642d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix inconsistent window geometry on null windowYoungjin Kim2021-04-152-1/+7
| | | | | | | | | | | | Add virtual QtWaylandClient::QWaylandWindow::defaultGeometry(). So this method allows a client to set the desired default geometry. Otherwise, if the geometry of the window is null, the window with the hard-coded geometry size will be displayed for a while when starting a client application. Change-Id: I18c50f8f390c2b8e1a2c3d8e4641b896df4d6c3f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Connect flushRequest after forceRoundTripElvis Lee2021-04-131-5/+8
| | | | | | | | If flushRequest is connected with aboutToBlock, the flushRequest may consumes all events so that processEvents might be blocked in forceRoundTrip. Change-Id: I12b2c506e8442bf0e75f6ab6e418d3e1eea6d68c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Client: Allow inheritance of key translationJaeyoon Jung2021-04-132-1/+7
| | | | | | | | Use a virtual method keysymToQtKey for Qt key code translation, so that it can be customized by a descendant class if needed. Change-Id: I3b48346a63e2c6f134230fe15279faa95abe11a0 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* client: Allow QWaylandInputContext to accept composed key combinationsAleix Pol2021-04-135-10/+119
| | | | | | | | | | | | | | | | | | | | | | At the moment, we are forcing user to choose to either compose or use the text-input channel. This patch brings some of the QComposeInputContext functionality in order to let applications understand dead key combinations like they are supposed to. Having it in QWaylandInputContext rather than in QWaylandInputDevice should solve the problems 3aedd01271dc4f4a13103d632df224971ab2b6df had with 57c4af2b18c0fb1d266b245a107fa6cb876b9d9e, because we are doing it in the input context rather than before. This way, if the user is overriding the input method (e.g. by setting QT_IM_MODULE), all the key strokes will still be properly forwarded to the module to use. This in turn allows us to solve https://bugs.kde.org/show_bug.cgi?id=411729 and https://bugs.kde.org/show_bug.cgi?id=405388 since we don't need to choose anymore between physical and virual keyboards anymore. Pick-to: 5.15 Change-Id: I8601f5d7ae21edf4b3a1191fa75877286e505588 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Fix touch being ignored when down and up are in the same frameHyunkook Khang2021-04-121-0/+8
| | | | | | | | | | | | The Wayland protocol gives no guarantees about which events are part of a frame, so handle the case where we receive wl_touch.down and wl_touch.up within the same frame. Fixes: QTBUG-89680 Change-Id: Ie0b9d2fb950fb0d9a6af8dd8ad2fa55a5efa71e6 Pick-to: 5.15 6.1 6.0 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Clean Q_ENUMSJiDe Zhang2021-04-121-1/+0
| | | | | | | | | | The Q_ENUMS macro is obsolete, and QWaylandOutput has contains "Q_ENUM(Subpixel)" and "Q_ENUM(Transform)", so should remove the "Q_ENUMS(Subpixel Transform)". Change-Id: I2c0c58922fa76e46aeeafc198d3b7a9b6ff5127b Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Use qWarning and _exit() instead of qFatal for wayland errorWeng Xuetian2021-03-311-2/+3
| | | | | | | | | | This type of error is likely to happen upon system logout. qFatal would trigger sigabrt and leave unnecessary coredump on the system. Using qWarning here would make it consistent with xcb's io error. Pick-to: 5.15 6.0 6.1 Change-Id: I571ba007bf2453486b81837cccdbefa5f181b63d Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Make addRegistryListener protectedDavid Redondo2021-03-263-5/+9
| | | | | | | | Enables leaf classes that want to bind immediately to call it without waiting for an event loop Change-Id: I4a885959ef54ba12a2c46f3f1a668e8c0cf1d967 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* xdgshell: Tell the compositor the screen we're expecting to fillAleix Pol2021-03-261-3/+6
| | | | | | | | | | | The xdgshell protocol allows us to tell the output to fill. This makes it possible to use fullscreen confidently on systems with multiple screens knowing that our windows won't be overlapping one another by calling setScreen accordingly before QWindow::showFullScreen. Pick-to: 6.1 6.0 5.15 Change-Id: I757854c3698639472f3a25ef298ddcca031e1ed5 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Replace scale with devicePixelRatio for non-integer scalingJungi Byun2021-03-256-15/+15
| | | | | | | | | | | | | | | The 'scale' event from wayland cannot support non-integer scaling which was originally supported in Qt. As default, devicePixelRatio follows the 'scale' so that the high DPI still works as the mechanism in Wayland. But if non-integer scaling factor such as 150% is needed, it can be supported to override the devicePixelRatio. Change-Id: I63a04db27bd521264b6d0904e1ddd05a572dc970 Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com> Reviewed-by: Jungi Byun <jungi.byun@lge.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix race condition when attaching client to text inputEskil Abrahamsen Blomfeldt2021-03-242-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extensions are registered by initialize(), which is called as a polish event later. Therefore the following race can happen: 1. Application #1 requests a text-input object. The compositor sees that the seat has no such object and creates a new one. 2. Polish event is posted. 3. Application #2 requests a text-input object. Since the polish event is not yet processed, it also creates a new one. 4. Second polish event posted. 5. Both polish events processed. We end up with two competing text-input objects, one per client. This in turn leads to enter/leave events not being sent correctly, and the client may therefore end up not updating the keyboard hints. The result was arbitrary behavior: Sometimes the keyboard would not open at all, whereas other times it would open with the current input method hints, even if these do not match the hints of the editor. [ChangeLog][Input] Fixed a problem where a virtual keyboard would not be updated correctly if two clients were started at almost the same time. Fixes: QTBUG-91096 Pick-to: 6.1 6.0 5.15 Change-Id: I262a5c15f87ba13d750425c259583919cd947ea4 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Move some information from README to documentationEskil Abrahamsen Blomfeldt2021-03-181-0/+66
| | | | | | | | | There is some useful tips that were only documented in the README file. Make these part of the ordinary documentation with some additional explanations. Change-Id: Id8471aba7a1a960d9ce2befa87db45464862156d Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Fix to apply smooth for texture of surface itemCathy Park2021-03-161-0/+2
| | | | | | | | Texture provider and texture node use setFiltering to apply anti-aliasing. That part was missed when use QSGSimpleTextureNode instead of QWaylandSurfaceNode. Change-Id: Ice14e3dafca4529d8051585909870bbc987eadf6 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Return oldNode when bufferLocked even when buffer has contentHyungchan Kim2021-03-151-1/+1
| | | | | | | | When client attaches empty buffer and commits, it updates source rect for the new node even though buffer is locked. Change-Id: Ibbd1ecdd054aa134093874cefcb3f86c630abf75 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Support EGL protected contentYoungjin Kim2021-03-156-1/+37
| | | | | | | | | | If a buffer has a protected content like DRM decoded video, the EGL Protected content extension allows GPU to operate on the buffer. With that, wayland-egl can get EGL image and texture from protected content. Change-Id: Ia687fc4ebc348cb03450e06713040acaa34b1cab Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* QWaylandQuickItem: Set shader for external OES texture manuallyValery Volgutov2021-03-085-14/+99
| | | | | | | | | | | | | | The shader for external OES texture cannot go through the normal pipeline and thus is required to be created manually. Note: This e.g. fixes wayland-egl backend on NVIDIA, as the EGLStreams implementation depends on external OES buffer type. Pick-to: 6.0 6.1 Task-number: QTBUG-89960 Change-Id: I9ab92b72f9db019be94e69a64d3fdf652dd4ed45 Reviewed-by: Jaeyoon Jung <jaeyoon.jung@lge.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Support handleFrameCallback to derived classesJungi Byun2021-03-082-12/+14
| | | | | | | | | | | The lambda expression doHandleExpose() is used in handleFrameCallback() to deal with exposure. In order to support platform specific implementation for frame callback, make the method doHandleExpose() into a virtual protected member doHandleFrameCallback() in QWaylandWindow. Change-Id: I8b22d4a552c72db1620d606929005917588c680d Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Handle registry_global out of constructorElvis Lee2021-03-043-10/+20
| | | | | | | | | Factory functions in QWaylandDisplay::registry_global() can be overridden. Later, other classes instantiated in the registry_global can support platform specific implementation with inheritance and some factory function. Change-Id: I92ce574e049b8c91587687cc7c30611f3dfdbe56 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix issue with repeated window size changesJaeyoon Jung2021-03-032-1/+4
| | | | | | | | | | | | | Check if the new window size is different from the size requested previously before calling wl_egl_window_resize. It addresses the issue where repeated setGeometry calls between two sizes might not work as expected. The problem occurs when wl_egl_window_get_attached_size does not get the same size that was requested by the previous setGeometry call. If the returned size happened to match the new size instead, we would mistakenly skip the resize. Change-Id: Iafe4a91cc707f854b9099b6109b6be1423d7bd29 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Client: get correct window content geometryJan Grulich2021-03-031-2/+7
| | | | | | | | | Window content geometry should not include invisible portions of the decorations, like shadows. This is stated in xdg-shell specificification and in the description for this method. Change-Id: I444fe9e28f0f175d2051be5c704efa7658bd45fb Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Decorations: add new argument to margins() to allow exclude shadowsJan Grulich2021-03-032-3/+13
| | | | | | | | | | | | | | | | We can already have shadows to be part of decoration margins, but we need a way to also get size of shadow margins itself, because they should be ignored for the purposes of aligning, placing and constraining windows. This change breaks API/ABI compatibility of QWaylandAbstractDecoration plugin, however, as stated in the header file, it is a subject of change and its API is not meant to be stable. Alternatively we can make this a separate method. Change-Id: Ib2c9982e16c4acb13a83757e6371022c0a89b74e Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Get correct decoration margins regionJan Grulich2021-03-021-4/+4
| | | | | | | | | | Size we use to calculate margins region already contains size including margins. This resulted into bigger region and not properly damaging region we need to update. Pick-to: 5.15 6.0 6.1 Change-Id: Id1b7f4cd2a7b894b82db09c5af2b2d1f1f43fa2a Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Client: Rebuild generated files when source or QtWaylandScanner changesDavid Edmundson2021-03-011-0/+2
| | | | | | | | | Right now if one changes QtWaylandScanner you need to do a clean build to see the changes. Change-Id: I3fc9f37a25550880328363b07b1bb5713c8df2e6 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Client: Send exposeEvent to parent on subsurface position changesDavid Edmundson2021-03-011-1/+6
| | | | | | | | | | | | | | | | | | When a subsurface is moved, we need the parent window to commit to apply that move. Ideally we want this in sync with any potential rendering on the parent window. Currently the code calls requestUpdate() which acts more like a frame callback; it will only do something if the main QWindow considers itself dirty. We want to force a repaint, which is semantically more similar to an ExposeEvent. Fixes: QTBUG-86177 Pick-to: 5.15 Change-Id: I30bdfa357beee860ce2b00a256eaea6d040dd55c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Client: Generate method to expose used version of a given proxyDavid Edmundson2021-02-248-27/+23
| | | | | | | | | | Relying on the compositor version only works for the core protocols. Using the version of our relevant object is more extensible and relies on less caching. Pick-to: 6.1 Change-Id: I1044e43a1e24a25359db95988c9956f4f1b5d35f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Remove redundant qmldir filesAlexey Edelev2021-02-236-29/+0
| | | | | | | | | | | qmldir files to be generated by the cmake build procedure and don't need to be stored in the source tree. Task-number: QTBUG-88263 Change-Id: Id32303457ae8983a1a6ec102a459a28bdcac8618 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Translate opaque area with frame marginsJan Grulich2021-02-231-3/+5
| | | | | | | | | The opaque area doesn't take window decorations into account, which may result into possible graphical artefacts. Pick-to: 5.15 6.0 6.1 Change-Id: I1606e8256e7e204dad927931eb1221b576e227fd Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Export QWaylandQuickSurfacePrivateHyungchan Kim2021-02-225-17/+77
| | | | | | | | Allow making derived class from QWaylandQuickSurface and its private class Change-Id: I223f02d053333c92c2dcf51044094966e8fd4029 Reviewed-by: Hyungchan Kim <hyungchan2.kim@lge.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add client parameter for set_cursorJaeyoon Jung2021-02-223-5/+10
| | | | | | | | | | | | | | | | | | Identify the sender of set_cursor request to determine surfaces that the cursor surface is associated with. New signal cursorSurfaceRequested is added. And the old signal cursorSurfaceRequest is deprecated. A quote from the wayland protocol spec - "The cursor actually changes only if the pointer focus for this device is one of the requesting client's surfaces or the surface parameter is the current pointer surface." Pick-to: 6.1 Change-Id: I1cd1345d6479877925c200859868ae8717afd1fa Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* QWaylandQuickItem: Mark texture as external OES if neededJaeyoon Jung2021-02-221-4/+12
| | | | | | | | | | If the buffer format is external OES, use fromNativeExternalOES to set the correct texture flag. Task-number: QTBUG-89960 Change-Id: Ia72f2833c9fac580d099959af9dcb28b9c477c55 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix sending input hints with new text input protocolEskil Abrahamsen Blomfeldt2021-02-222-1/+3
| | | | | | | | | | | | | | | | | Using input method hints to request things like digits-only etc. did not work with the specialized Qt input method for two reasons: First of all the full state of the editor needs to be sent to the keyboard when the focus object is set. But even fixing this, it turned out that the recipient was not actually registering the input methods hints, but just overwriting the function argument with itself. Fixes: QTBUG-91206 Pick-to: 6.0 6.1 Change-Id: I1b8a3e92cc912bc06b6a2a60f8ea280393cd226e Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org> Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Support platform specific implementationElvis Lee2021-02-177-25/+53
| | | | | | | | | QtWaylandClient can be inherited to support platform specific implementaton. Change-Id: Ie0f4aa28dbb2dcd6b1245cb14e23f3b45e687400 Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Do not update size of surface item when buffer is lockedJaeyoon Jung2021-02-151-0/+10
| | | | | | | | Fix problem the surface item gets shrunk as a null buffer is attached to its surface even though its buffer is locked. Change-Id: I28afccbae4f82d9d2f831d29e808873bb0cbd514 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Client: Connect drags being accepted to updating the source drag iconDavid Edmundson2021-02-151-0/+1
| | | | | | | | | | | | | | | | Currently in a multi-process drag and drop when the other client accepts a given mimetype for dropping it calls accept, which is received by the client, but the drag cursor is never updated. Instead the drag cursor was updated in the data_device_enter events which only works if we are operating within one process. The code existed to handle this existed but both the targetChanged signal and the dragSourceTargetChanged were unused. Change-Id: I443f31f1b2ef72d4b5eadaf7115f97544dac883a Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>