summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/tqtc/lts-5.15.9' into ↵v5.15.9-lts-lgpl5.15Tarja Sundqvist2023-03-2320-56/+93
|\ | | | | | | | | | | tqtc/lts-5.15-opensource Change-Id: Id7e59c8258165ebca9bcb552d5a4e9872d872232
| * client: update button state and etc in pointer_leave()Liang Qi2022-03-101-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | The cleanup work needs to be done even the surface is null, for example, a window was closed in mouse press handler, then will not get a mouse release. Fixes: QTBUG-100942 Change-Id: I637a6744909ddbe62bdeba6b21494e5a6ae7fa9f Reviewed-by: Tang Haixiang <tanghaixiang@uniontech.com> Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 409d1080f25b653b3ff3f57c9776c5c390912206) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * client: set_constraint_adjustment() for popups in xdgLiang Qi2022-03-081-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | See also https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/xdg-shell/xdg-shell.xml#n234 . Kudos to Greg V for his original patch in jira. Fixes: QTBUG-87303 Done-with: Greg V <greg@unrelenting.technology> Change-Id: I57df9aedea7cc6f0b6fa142a6fc6c3bdc98324c8 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 59a5fe99e1569421b920d99c5b20cdafcdcf43a9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Cursor position == 0 should still show the cursorWeng Xuetian2022-02-121-2/+2
| | | | | | | | | | | | | | | | | | | | Otherwise the cursor would be hidden even if preedit is empty. Amends 719a55be13bdadfa659a732755f280e276a894bd Change-Id: I320733b917779b7b51aa4a28eaea411fdb10a318 Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit 31ae194e295651d9ece03408630d2358acd4f7b4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Update the preedit styling mappingWeng Xuetian2022-02-121-11/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - None mapping to no style. - Default/Underline mapping to underline. - Highlight/Selection mapping to background color/text color with highlight/highlight text with underline. - Active/Inactive mapping to bold text with underline. - Incorrect mapping to red wave underline. Change-Id: Iab51d671b8f83aece8596f7f7610de19343fcceb Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org> (cherry picked from commit f1fb5d9e568a24e213ee41e82a1142cef56f1098) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Don't keep eglConfig in hardwareintegrationInho Lee2022-02-118-25/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no reason to keep eglConfig value as a member variable. Even this can result in creating wrong surface from the current surface. And it makes no sense to change alpha bits of the surface format by supporting decorations. Task-number: QTBUG-97916 Change-Id: Iaa395d36e83373ea197dc5e14424fcb62cd2cd8b (cherry picked from commit af884d4aac18e5155649f8a916ea272c11542b7e) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Seokha Ko <seokha.ko@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * Update the window geometry when changing decorationsInho Lee2022-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | Windows' geometries should be updated when changing decorations. Fixes: QTBUG-100467 Change-Id: I5ec9968aa48422776d184a8fa2f5d86ecc3ca5c3 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit 37e3789cf932ff665b8bd9325e64524c10c16489) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Fix crash if no input method module could be loadedJoni Poikelin2022-02-031-1/+1
| | | | | | | | | | | | | | Change-Id: I8f346def616606a6c5540856bd08a84ee7ed5ca2 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 49fb7248f6ab7de046e2179c7861951ea1169e9b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Fix build with -no-feature-tableteventLiang Qi2022-02-025-2/+25
| | | | | | | | | | | | | | | | Fixes: QTBUG-99965 Change-Id: Ib7fcf92973b4e559713ae27ad0c7f843f9122daf Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit ba82ba66eb8dc3580e67683783a410a254984def)
| * Fix wayland touch event to use time stamp from wayland compositorSeokha Ko2022-01-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Touch events may be ignored if we set time stamp in handleTouchEvent() when handling touch events queued in wayland socket in main thread. So use time stamp from wayland compositor. Task-number: QTBUG-100150 Change-Id: I14fd3791b4d29177c71662d1cf26c0eed0abb767 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Seokha Ko <seokha.ko@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 2419064c3532e2efd3bcf2f23c9c690b0a0fdd00)
| * wayland touch event to add key modifierTang Haixiang2022-01-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | Add touch event keyboard modifier for wayland, which is done in qpa xcb, which is very convenient on tablets with keyboards. Change-Id: I4e6ed369f3444da41d06f9a9a83addf7de0a4e91 Reviewed-by: Povilas Kanapickas <povilas@radix.lt> Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit a2dd5efbaa4b63782261664ca9a1aa9973db976e) Reviewed-by: Liang Qi <liang.qi@qt.io>
| * Bump versionTarja Sundqvist2021-12-311-1/+1
| |
| * Fix missing update when toggling client-side decorationsEskil Abrahamsen Blomfeldt2021-12-212-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When CSD is toggled while a window is showing, it would change the size and recreate the buffers, but since the widget area remained the same size, we would not trigger a redraw. The result was that when you got any update to the window, it would redraw the widgets that had changed, and the rest would be transparent. Since this is a fairly specialized case, we fix it the simple way, by just issuing an extra update when it happens. This also required an update to the surface test, since there is an additional buffer commit in the beginning of the sequence now. Fixes: QTBUG-95032 Change-Id: Ic4bdb9c66a2ea76546926dd622f2d2dac5dce10c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit af7b60ade5c4be81cbc58eb18307c017d5594071) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Set preedit cursor when cursor equals to 0Weng Xuetian2021-12-201-1/+1
| | | | | | | | | | | | | | Change-Id: I832fbb22d973b36ac4ab51570fc53bc2e4c3ed58 Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit 719a55be13bdadfa659a732755f280e276a894bd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Client: support high-dpi mode for window iconLiang Qi2021-12-131-6/+3
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-90530 Change-Id: Ib1f36e1cb89352dfac8a385a7b097cfc0226e813 Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit fc91cd6b1306c6d452cbddab3c2289ccb92218d6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* | Merge remote-tracking branch 'origin/tqtc/lts-5.15.8' into ↵v5.15.8-lts-lgplTarja Sundqvist2022-11-106-32/+34
|\ \ | |/ | | | | | | | | tqtc/lts-5.15-opensource Change-Id: Id97943831fbc85d703dc50369e0d975513208c43
| * Use a correct serial for xdg_surface.ack_configureInho Lee2021-12-072-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | Previous pendingConfigureSerial can be overwritten regardless of the current configuration. With this patch, the client surface can use correct serial for xdg_surface.ack_configure. Fixes: QTBUG-95962 Change-Id: I849d2daf4acc8ef6e7f8528af9c5a57f671f43e6 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 07ddfbfa43d08c2b76aabafaab38830e04a42690) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * tst_seatv4: fix compilation with GCC/C++20Marc Mutz2021-11-171-2/+0
| | | | | | | | | | | | | | | | | | | | | | Explicitly defaulting the default ctor suppresses aggregate initialization. It's also a pointless thing to do, so don't do it. Change-Id: I8ec14f22ae1ead2dd6db643a6462f719fda344b8 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 6f195a592b26ad8416a6f02d6bd7258ab3fadf65) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
| * tst_seatv4: fix deprecated implicit capture of this by [=]Marc Mutz2021-11-161-22/+22
| | | | | | | | | | | | | | | | | | | | Since exec() is a synchronous call, we can just take everything by reference instead. Change-Id: Ic1588db69ed6bb0d8dd39ff0439ad0fc97dd957f Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 550c867ead52c575b9d7117754d8c935916f0bb7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Do not create decorations when the shellSurface is not readyInho Lee2021-11-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A cases reported that client windows try to make decorations when their shell surfaces are null. Since the surfaces' requests for decorations should be applied, those case will be failed to create decorations. This patch was modified by Paul Tvete's advice. (paul.tvete@qt.io) Task-number: QTBUG-97608 Change-Id: I2563dbd73b730f81cc411857af07da99ceb2d063 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 246f0c0bc01dd059bf8165e81f7b49efa36e4d95) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Bump versionTarja Sundqvist2021-11-081-1/+1
| |
| * Fix the logic for decoding modifiers map in Wayland text input protocolRodney Dawes2021-10-151-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Correctly check for the flags in the modifiers map when we get it from the compositor, instead of modifying the map in the for loop conditional. [ChangeLog][QWaylandInputContext] Fix modifiers map decoding logic when receiving the map from the compositor. Fixes: QTBUG-97094 Change-Id: Idad19f7b1f4560d40abbb5b31032360cfe915261 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit baa7ef511bf40280448e5f0e721ddd6da3301f3b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* | Merge remote-tracking branch 'origin/tqtc/lts-5.15.7' into ↵v5.15.7-lts-lgplTarja Sundqvist2022-09-125-15/+36
|\ \ | |/ | | | | | | | | tqtc/lts-5.15-opensource Change-Id: I42a0e780eea6d92f0463566e5ab9b23efc9f49b7
| * Wayland client: Fix crash when windows are shown/hidden during dragPaul Olav Tvete2021-09-241-1/+1
| | | | | | | | | | | | | | | | Fixes: QTBUG-87624 Change-Id: I1b9443df091878abcd4fbe9c55927cb819aebd59 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit c64c5d3849b40617e1de0295f8690f354cab2b3a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Bump versionTarja Sundqvist2021-09-071-1/+1
| | | | | | | | Change-Id: I4a6354892203b37f341fb89069ebc2b572595373
| * Keep reference to buffer until it has been replacedEskil Abrahamsen Blomfeldt2021-08-312-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the code path which uses QWaylandBufferMaterial, the buffer could potentially be deleted before the material had been updated, which could cause issues if the render thread was currently using the textures. In the default code path this was handled by keeping a reference to the buffer in the texture provider, but in the alternative YUV format code path, we did not increase the reference count of the buffer, so it would be deleted immediately when it was replaced rather than wait for the sync with the render thread. Task-number: QTBUG-95715 Change-Id: Ic6038ea8281e2a2e292d12150d1fffedb5c3b76e Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 6b9a27d77e226a3d0ce9fa9b4974f70c9ef4a30e)
| * Implement wp_viewporter support for video buffer formatsEskil Abrahamsen Blomfeldt2021-08-241-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some EGL image formats (the YUV formats specifically) cannot be handled by the built-in node types in the Qt Quick scene graph and use a custom material and geometry setup. In this setup, the wp_viewporter source rectangle was ignored and the entire texture was always sampled. This caused problems e.g. for video frames supplied by GStreamer. [ChangeLog][Extensions] Support for wp_viewporter extended to cover less common buffer formats. Pick-to: 5.15 6.1 6.2 Task-number: QTBUG-95464 Change-Id: I2504c6cd7d82e17d28e930a59d9ec71b25779acb Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 060024e2fc9335d4fc999253c9d6ed560c7ffb0c)
| * Ignore viewporter buffer size when buffer is nullEskil Abrahamsen Blomfeldt2021-08-241-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The documentation for viewporter says: "if the source rectangle is partially or completely outside of the non-NULL wl_buffer, then the out_of_buffer protocol error is raised when the surface state is applied. A NULL wl_buffer does not raise the out_of_buffer error." The intention here is that the viewport can be initialized before the buffer is actually attached to the surface, and the parameters will be kept for later. We simply skip the error condition when there is no buffer. [ChangeLog][QtWaylandCompositor] Fixed an issue in the wp_viewporter extension, where it would emit a protocol error if the viewport was configured before attaching a buffer to the surface. Pick-to: 5.15 6.1 6.2 Fixes: QTBUG-95464 Change-Id: I71d09974dfe5e0f39ed79e7718e1e0d402547583 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 639bd92682f5f61f15f97f78ccd9791bec852b6c)
* | Merge remote-tracking branch 'origin/tqtc/lts-5.15.6' into ↵v5.15.6-lts-lgplTarja Sundqvist2022-08-167-76/+87
|\ \ | |/ | | | | | | | | tqtc/lts-5.15-opensource Change-Id: I9c249bfb8ad3764931b1c468f5cb927b784a2135
| * Cleanup up all subsurface QQuickItems correctlyDominik Holland2021-08-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When showing a surface with a subsurface in a QML based compositor, the subsurface QQuickitems are now destroyed when when main surface QQuickItem is destroyed and not just when the surface is destroyed. This prevents subsurface QQuickItems piling up when showing and hiding the client surfaces e.g. inside a StackView. Fixes: QTBUG-94602 Change-Id: I006a6a763d4daf560ba2a7b6f83e1de3e3c48906 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 5463a04097ee7824b2032fb058e289cf62bfd315) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Do not update the mask if we do not have a surfaceAleix Pol2021-07-131-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | mMask serves as a cache to remember what we've sent, the source of truth for the value is window()->mask(). No need to store values that we are going to discard, because it will confuse the state of newly created windows. Change-Id: I6aa3da82c7f09c7ef90d0f7060f292fb042730f0 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 962f87190c682562b369c5ebd93dc9ce0915ed7a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * linux-dmabuf-unstable-v1: Fix importing dmabuf buffers with modifiersAlexandros Frantzis2021-06-291-68/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Depending on the used modifiers, there are cases where dmabuf buffers may be transported as multiple dmabuf planes, although they are conceptually single plane buffers. An example of a modifier that works like this is I915_FORMAT_MOD_Y_TILED_CCS. In such cases we need to create a single EGLImage by merging all the dmabuf planes. Almost all of the currently supported DRM formats are conceptually single plane, so they require such merging of the dmabuf planes. The only formats that need to be mapped to multiple EGLImages are some YUV based ones, which we are already importing in a different way (see initYuvTexture). In addition, ensure that we don't pass to EGL a modifier value of DRM_FORMAT_MOD_INVALID, since this is not an acceptable value. To indicate a lack of modifiers skip the relevant EGL_DMA_BUF_*_MODIFIER_* attributes altogether. Sponsored-by: LG Electronics Inc. Change-Id: I32a717f3be20927f2f3f4aa0fc6c4f7a5250db33 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 8163327dcb3d37e9f3011bd9bec88848b2ce3b6c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Add BlankCursor for cursor names mapJiDe Zhang2021-06-111-0/+2
| | | | | | | | | | | | | | | | | | BlankCursor => "blank" Change-Id: I9337f0615f84bb82bc722d24416e97799309b3e5 Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit 94e68d506ab9b94ec11786553a220abe4b52503e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Bump versionTarja Sundqvist2021-06-071-1/+1
| |
| * client: Gracefully handle shutdown and window hidingEskil Abrahamsen Blomfeldt2021-06-043-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a window is hidden or destroyed, the render thread may already be rendering. We need to properly read-lock the surface pointer when it is in use and exit when it becomes null. Note that there is also a potential crash in the Mesa GL driver where it keeps a proxy to the wl_surface, so if we delete this while we are still rendering, it can crash inside the driver. This is not addressed by this patch, and has not been reproduced on any other drivers so far. [ChangeLog][Client] Fixed a crash that could happen when hiding or closing windows while Qt Quick was actively rendering on a different thread. Fixes: QTBUG-91264 Fixes: QTBUG-90037 Task-number: QTBUG-92249 Change-Id: I029b123b83c58740321e8b90a463ced748d8bcf4 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit b19b0fbaf775e8b8eda1e03c265a5393d618c6c0) Reviewed-by: Liang Qi <liang.qi@qt.io>
* | Merge remote-tracking branch 'origin/tqtc/lts-5.15.5' into ↵v5.15.5-lts-lgplTarja Sundqvist2022-05-1918-1/+27
|\ \ | |/ | | | | tqtc/lts-5.15-opensource
| * Bump versionTarja Sundqvist2021-05-201-1/+1
| | | | | | | | Change-Id: I7f046c2006d68b1d129a569f380f8847f389477d
| * Docs: Add "instantiates" keywordsKai Uwe Broulik2021-05-1916-0/+20
| | | | | | | | | | | | | | | | | | | | Document what the corresponding C++ class for any given QML item is, like it's done in Qt Declarative. Change-Id: I015565f88cb457f1e73dd7c2c54edff3505db395 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit a04decb6a85ef254ec48842e7551a2920de6a714) Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * Include locale.h for setlocale/LC_CTYPEAlbert Astals Cid2021-05-121-0/+4
| | | | | | | | | | | | | | Change-Id: Iced32a31a63cec71008549c1e0961d59ffc45a37 Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org> (cherry picked from commit e9522eda46028f351d87311d898ab985856970b0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Add missing define guardsSamuli Piippo2021-04-221-0/+2
| | | | | | | | | | | | | | | | | | | | Ammend cca1b94190a094b5d1d7ce492b6533e2d330c5e8 to use m_composeState only if xcbcommon is available. Change-Id: I48332b15def3282c5bda3e1c7c393ea7e9849cbe Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org> (cherry picked from commit 05658e127dedfff65789860415537c6920ec574d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* | Merge remote-tracking branch 'origin/tqtc/lts-5.15.4' into ↵v5.15.4-lts-lgplTarja Sundqvist2022-04-0712-29/+182
|\ \ | |/ | | | | | | | | tqtc/lts-5.15-opensource Change-Id: I665a0f6579e52cd9f27f731c6363bb03188a07bf
| * Fix touch being ignored when down and up are in the same frameHyunkook Khang2021-04-141-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 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit da31aa6544f38c063de93326f958e8cbb02004af) Reviewed-by: Hyunkook Khang <hyunkook.khang@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. Change-Id: I8601f5d7ae21edf4b3a1191fa75877286e505588 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit cca1b94190a094b5d1d7ce492b6533e2d330c5e8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * 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. Change-Id: I571ba007bf2453486b81837cccdbefa5f181b63d Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 91625c591c9854c7b6934c12a83df6cbcfcbfbd4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Fix race condition when attaching client to text inputEskil Abrahamsen Blomfeldt2021-03-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Change-Id: I262a5c15f87ba13d750425c259583919cd947ea4 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit e08b25efe4a7bec1004696bd23d9f8959158bd60) Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * 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. Change-Id: I757854c3698639472f3a25ef298ddcca031e1ed5 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit f915e53eaa596654ee1b9726a4767a1cba11336f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Bump versionJani Heikkinen2021-03-031-1/+1
| | | | | | | | Change-Id: I1d5ca219c9300047704f484ced7ae39222760941
| * 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. Change-Id: Id1b7f4cd2a7b894b82db09c5af2b2d1f1f43fa2a Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 1631315387faff3b4ae5c5ff1afb95e42f986e4c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Client: Send exposeEvent to parent on subsurface position changesDavid Edmundson2021-03-012-6/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Change-Id: I30bdfa357beee860ce2b00a256eaea6d040dd55c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit b36a345d727eab37ee4ec4c2dc4674d5971c81d8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * 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. Change-Id: I1606e8256e7e204dad927931eb1221b576e227fd Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 3aed1fe7132c00cc7ce9b0fe8fc9e8ccdc771d38) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>