summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Windows XP style: Fix coding style violationsVolker Hilsheimer2022-01-201-375/+329
| | | | | | | | | | | | | | | | | | | | Fix various violations of the coding style or general inconsistencies. No claim for completeness. * indentation and line breaks * consistent scopes for case statements where needed * add curly-brackets for if-statements where needed * removed {} where not needed * const'ify a few obvious local variables * remove random empty lines * use auto when type is obvious from cast Deliberately not touching nested if-statements that could be merged into one. Pick-to: 6.3 Change-Id: Ie22b36568f33e18d5f15c751c7fd76e1490133b9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* wasm: fix installation when staging prefix is usedSamuli Piippo2022-01-201-1/+2
| | | | | Change-Id: I2f9acdd977702f78c75eaeb67fc67f1b82836ff7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Offscreen: Implement QPlatformBackingStore::toImageVolker Hilsheimer2022-01-181-0/+1
| | | | | | | | | This makes testing of actually produced output easy in unit tests. Pick-to: 6.3 Task-number: QTBUG-99962 Change-Id: Ia806539230af12d1eae1e31ef7a47155d9bc1bed Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove unused .qrc filesJoerg Bornemann2022-01-174-44/+0
| | | | | | | | Task-number: QTBUG-94446 Change-Id: I136d8b4ab070a832866aa50b5701fc6bd863df8a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move input event logic into QWasmCompositorDavid Skoland2022-01-179-598/+658
| | | | | | | | | | | | | | | | | | | | | Move the window logic and state out of QWasmEventTranslator and into QWasmCompositor. The reasoning for this change is that the state of the windowing system was split between QWasmCompositor (eg. window stack) and QWasmEventTranslator (eg. dragged and pressed windows). This change moves the input handling and state to QWasmCompositor and demotes QWasmEventTranslator to a helper class. In this model, QWC acts as a proper window system / display server and can leverage multiple helper classes which are "owned" by the QWC. Here is a quick diagram illustrating the proposed general architecture around WASM window handling and its difference from typical OSes: https://i.imgur.com/vcBwUPf.png Change-Id: Idca617992b8e1b431e5c71d46b5db61597c99e75 Pick-to: 6.3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Replace QString::utf16 with QString::data where appropriateØystein Heskestad2022-01-171-4/+4
| | | | | | | | | | | QString::utf16() needlessly detaches fromRawData() to ensure a terminating NUL. Use data() where we don't require said NUL, taking care not call the mutable data() overload, which would detach, too. Task-number: QTBUG-98763 Change-Id: Ibd5e56798c0c666893c12c91ff0881842b8430c7 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QMacStyle: fix a regression introduced by a button type changeTimur Pocheptsov2022-01-121-0/+7
| | | | | | | | | | | Since we (re)use NSButton to render tab items, the 'momentary push in' button type breaks the tab. Temporary restore the old 'push on/push off' type if rendering a tab. Pick-to: 6.2 6.3 5.15 Fixes: QTBUG-99743 Change-Id: I54b11c1a35373292ecf0bcd5cf7b4ea4203cc031 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QSslSocket (SecureTransport) add TLS 1.3 ciphersuitesTimur Pocheptsov2022-01-122-0/+78
| | | | | | | | | | | | | | | | | | | At some point we decided to support a custom set of ciphersuites specified by QSslConfiguration (which if you ask me was never a good idea). The law of unforseen consequiences bit us again: since we now give a set of ciphesuites to QSslConfiguration and set ciphesuites from the configuration a socket has, we are limited by the ciphersuites we know about at the moment of 'coding'. Meaning if an SDK was updated and CipherSuite.h later adds more ciphersuites, we miss them and 'don't support them', while we ... actually do. This patch tries to add some more ciphersuites introduced in TLS 1.3 (interesting, SecureTransport does not support TLS 1.3, but TLS 1.3 suites can be used in TLS 1.2 session). Pick-to: 6.2 6.3 5.15 Task-number: QTBUG-99368 Change-Id: I439b63845c4893e5621cffaf3bcaf62e2b643c74 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* macOS: Implement QCALayerBackingStore::scroll for improved performanceTor Arne Vestbø2022-01-122-0/+57
| | | | | | | | | | | | | | | | | | The CALayer backingstore never had a scroll implementation because we were relying on the QRasterBackingStore implementation, but as it turned out that implementation was not applicable for the CALayer backingstore. We now implement scroll() by determining which part of the back buffer can be scrolled directly in-place, and then scrolling the rest by copying from the front buffer. We have to handle both cases, as clients may scroll multiple times before flushing, and the scrolled area may overlap both valid back-buffer content and content that needs to be pulled from the front-buffer. Pick-to: 6.3 6.2 Change-Id: Icc09c9488386925116779c9024669a4329b38247 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Adapt SQL drivers to Qt 6 change of QVariant::isNullVolker Hilsheimer2022-01-127-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | In Qt 5, QVariant::isNull returned true if either the variant didn't contain a value, or if the value was of a nullable type where the type's isNull member function returned true. In Qt 6, QVariant::isNull only returns true for variants that don't contain a value; if the value contained is e.g. a null-QString or QDateTime, then QVariant::isNull returns false. This change requires a follow up in the SQL drivers, which must still treat null-values the same as null-variants, lest they write data into the data base. Add a static helper to QSqlResultPrivate that implements isNull-checking of variants that contain a nullable type relevant for Sql, and add a test case to the QSqlQuery test that exercises that code. Pick-to: 6.2 6.3 Fixes: QTBUG-99408 Fixes: QTBUG-98471 Change-Id: I08b74a33aa3235c37d974f182da1f2bdcfd8217e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QFlatMap: add insert_or_assignMarc Mutz2022-01-121-1/+1
| | | | | | | | | | | | | | | | This does exactly what insert() on Qt associative containers does, but allows to express the intent of using the STL-incompatible Qt insert() semantics, in an STL-compatible way, instead of leaving the reader of the code wondering what semantics are expected. This is part of a very-long-term goal of fixing Qt associative container's insert() behavior, in which QFlatMap, being an affected, but private-API type, is used for proof-of-concept purposes. Task-number: QTBUG-99651 Pick-to: 6.3 6.2 Change-Id: I69010285438259918aef659d3235180c1b5be696 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QScreen_win: retrieve user friendly monitor nameYuhang Zhao2022-01-121-4/+15
| | | | | | | | | | | [ChangeLog][QtGui][QScreen] QScreen::name() now returns the user friendly name instead of the GDI device name on Windows. This is consistent with other platforms and also obeys the documentation. Fixes: QTBUG-74317 Pick-to: 6.3 6.2 Change-Id: Iefbfaa1f9fd504277a0b5eb8c7a1fc13257c01f2 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* eglfs: Unset shared raster compositing context before deletionTor Arne Vestbø2022-01-121-0/+2
| | | | | Change-Id: Ib0f615c76ac62f1177e44faaa733e67014f4185d Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* xcb: Correctly update primary screen status with RandR 1.5Zhang Hao2022-01-122-10/+3
| | | | | | | | | | This amends d8f37d94e537aaab4fa960b80aacabe79bcc14c4 . Fixes: QTBUG-99605 Pick-to: 6.3 Done-with: Liang Qi <liang.qi@qt.io> Change-Id: Ia4cf67d6ebeed36596c0342302aa0b4af01769bc Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* wasm: ensure cursor reverts after window resizeLorn Potter2022-01-124-9/+46
| | | | | | | | | | | | | | This partially reverts 97be0cca174a3b92c24062c557bf4df34db23f7b but without the crash We temporarily override the wasm cursor while leaving the application/window cursor alone to mimic what desktop application behavior is like. Pick-to: 6.3 Fixes: QTBUG-99111 Change-Id: I23df48b2eaa82830593f1753ec23d14fe375b70c Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Add PreselectFirstFileInDirectory platform theme hintMitch Curtis2022-01-071-0/+2
| | | | | | | | | | | | This allows Qt Quick Dialogs to accurately check whether it should select the first file in a directory when a file dialog is opened. While we're here, fix an incorrect version on the last theme hint that was added. Task-number: QTBUG-98562 Change-Id: I08cc8a0fbed28a42d1212016c6ee7fc5459578bf Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Replace QString::utf16() with data() in memcpy() and QByteArray ctorØystein Heskestad2022-01-074-7/+7
| | | | | | | | | | | QString::utf16() needlessly detaches fromRawData() to ensure a terminating NUL. Use data() where we don't require said NUL, taking care not to call the mutable data() overload, which would detach, too. Task-number: QTBUG-98763 Change-Id: I7075a8f18ab1f82ebbcf8cfab1643e8ab7f38d51 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* macOS: Handle momentum scroll NSEventPhaseBegan when scroll had endedTor Arne Vestbø2022-01-071-1/+5
| | | | | | | | | | | | | | | | We use nextEventMatchingMask to look for future momentum scroll events when the non-momentum scroll ends, to continue the scroll uninterrupted from the perspective of client code. But we're not guaranteed to find a future momentum scroll event, as observed on macOS 12.1, so if we then see a momentum NSEventPhaseBegan we need to treat it as a scroll begin from Qt's perspective. Fixes: QTBUG-97841 Pick-to: 6.3 6.2 5.15 Change-Id: I412abe0891660eda32a42a08d7dc7dee9eaa73aa Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* CMake: link OpenSSL to openssl tls backend instead of QtNetworkFrank Su2022-01-061-2/+11
| | | | | | | | | | | | | TLS backend has become plugins since Qt 6.2. QtNetwork does not need these links anymore. Also removes unnecessary condition since openssl tls backend is enabled only if OpenSSL is enabled. Pick-to: 6.2 6.3 Change-Id: I4cc0422531d567ad015f9648fbb2bcd51f634cb9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* wasm: don’t exit on clean return from main()Morten Johan Sørvig2022-01-051-0/+6
| | | | | | | | | | | | | | | Qt 6 uses Emcripten’s default of not exiting the runtime when main() exits. Make qtloader not transition to the “Exited” state when main() exits with code 0, since this would hide the app canvas. (The app state tracking code in qtloader is by now outdated, and should be revisited.) Pick-to: 6.3 Change-Id: Ib47898f1dd93d87b2675f20cd39f96ac3cb681a7 Reviewed-by: David Skoland <david.skoland@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* wasm: always use requestAnimationFrame for updatesMorten Johan Sørvig2022-01-055-65/+116
| | | | | | | | | | | | | | | | | | | | | The compositor was posting update events and flushing/redrawing using a zero-timer. Change this to use the request_animation_frame API from Emscripten, which makes sure we flush window content at the next native paint event. This has the additional benefit that hidden canvases (e.g on hidden tabs) won’t get frame events, and then stop painting. We support both well-behaved QWindows, where the window calls requestUpate() and then paints/flushes on the following deliverUpdateRequest(), and also less well behaved windows which paints at any point during event processing. Pick-to: 6.3 Change-Id: I747d6f7ace86ceddaa18ab86b6a0ee833f98991b Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* QMacStyle: use the 'momentary push in' type for push buttonsTimur Pocheptsov2022-01-051-8/+22
| | | | | | | | | | | | | | | | In the past, we were using different hacks to emulate the 'default' button and a normal button (and them in a pressed/not pressed active/non-active states). In macOS 12 old trick stopped working and UI looks a bit different: non-default buttons never get accent color even if pressed. Instead of relying on a combination of 'push on-push off' type's states and highlight, we can use the 'momentary push in' (highlighted == YES gives an impression of a pressed button) + setting a key equivalent (thanks to Tor Arne for the hint) gives the desired 'default button' look. Pick-to: 6.2 6.3 5.15 Task-number: QTBUG-98483 Change-Id: If7d665d217420b7732b556d98d9e0313258ff93e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* macOS: Sanitize scroll deltas for NSEventPhaseCancelledTor Arne Vestbø2021-12-231-0/+10
| | | | | | | | | | | | | | | | On macOS 12.1 the NSEventPhaseCancelled phase can in some situations report deltas, which causes the scroll to "jump". This happens for example when initiating a momentum-scroll, and then putting two fingers on the trackpad to cancel the momentum phase, which starts a new NSEventPhaseMayBegin phase. When then lifting the two fingers again, we get an NSEventPhaseCancelled event with deltas, but the deltas seem like uninitialized data (has a x-value, after doing a purely vertical scroll e.g.). Task-number: QTBUG-97841 Pick-to: 6.3 6.2 5.15 Change-Id: I14e765b6111e53e7d3d0da219d4ac7fefe5243d0 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* wasm: Use new event dispatcher for QtGuiMorten Johan Sørvig2021-12-235-230/+18
| | | | | | | | | | | | | The event dispatcher implementation is now in QtCore, except for the call to QWindowSystemInterface::sendWindowSystemEvents(). Implement QWasmWindow::requestUpdate() using emscripten_request_animation_frame(), instead of the previous registerRequestUpdateCallback() function which now is removed. Pick-to: 6.3 Change-Id: I7a13eb5391d48dba0f2afe4704ef3188b8daa74b Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* Windows: Don't crash in mouse handling when QApplication is recreatedVolker Hilsheimer2021-12-221-1/+3
| | | | | | | | | | | | | | | | | We store the primary pointing device in a static variable to avoid the lookup for each mouse event. However, when QApplication is destroyed, then the device is destroyed, and the pointer needs to be reset so that QApplication can be created again by the same process without the first mouse event crashing the program. Use QPointer to prevent the pointer from becoming dangling. Fixes: QTBUG-99319 Pick-to: 6.2 6.3 Change-Id: Ie534c5eee48afb83e3a4adf70fc6cb4a2c310a7a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: André de la Rocha <andre.rocha@qt.io>
* macOS: Don't read keyCode of non-key events when inserting newlinesTor Arne Vestbø2021-12-222-2/+5
| | | | | | | | | | | | | | | | | | | | | | | When the system input method decides to trigger an insertNewline message it might come from a synthetic NSEvent of type AppKitDefined, which does not respond to the keyCode message. Accessing the keyCode would result in an exception being thrown. We guard for this scenario by moving the keyCode access into the key-press and -release specific parts of the KeyEvent constructor, making the KeyEvent usable with generic NSEvents (even if that means it will only pull out the timestamp and modifiers). We also prefer to use the currently interpreted NSEvent, if one is available, when preparing the synthetic newline event. This ensures that we get a valid timestamp and modifiers, since the synthetic AppKitDefined event that the system IM generates does not provide valid values for these. Fixes: QTBUG-99186 Pick-to: 6.2 6.3 Change-Id: I050ae2aa2d8ded1be3541f746e6c052f3546e27c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Make sure that QCocoaWindowManager is initialized in static buildsVolker Hilsheimer2021-12-212-3/+6
| | | | | | | | | | | | | | | | | | If code has no external references, then with a static build of Qt the linker is free to strip those object files from the final executable. This is what happened with QCocoaWindowManager, which had no exported symbols, and no callers from other files. To prevent the linker from stripping the object file and to ensure that the constructor function gets called during startup, move that function declaration to the QCocoaIntegration code, which is always loaded. Fixes: QTBUG-99280 Pick-to: 6.2 6.3 Change-Id: Icdafea372a1b42c6ecdb43e36aeb0a04a70e3d4e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Windows QPA: Enhance debug informationYuhang Zhao2021-12-171-0/+74
| | | | | | | | | https://docs.microsoft.com/en-us/windows/win32/winmsg/window-styles https://docs.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowpos Change-Id: I54392b36c52c4318c0d2d5489bbfd582ff7bccb3 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Declare params in qwasmclipboard unusedDavid Skoland2021-12-151-0/+2
| | | | | | | | | | Without this, it won't compile with the -developer-build configure option (warnings are errors) Pick-to: 6.3 6.2 Change-Id: I114370e918d63bd6e8855b5f750999cf372e2f6d Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* Windows QPA: Correctly respond to WM_ERASEBKGNDYuhang Zhao2021-12-153-4/+6
| | | | | | | | | | | | | | | | According to Microsoft Docs [1], applications should return non-zero in response to WM_ERASEBKGND if it processes the message and erases the background and that's indeed the case for Qt. Although I can't see any visual difference, this patch obeys the official documentation at least. [1] https://docs.microsoft.com/en-us/windows/win32/winmsg/wm-erasebkgnd Pick-to: 6.3 6.2 Change-Id: I8aa0bfb25259013bfc2ca4074f05a97c7865159c Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Windows QPA: Remove extra class name from the function nameYuhang Zhao2021-12-151-1/+1
| | | | | Change-Id: Iabe7c0093acc9b892182aa7e69e5af50abf61275 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Windows QPA: Fix cursors getting out of sync after restoring override ↵Friedemann Kleint2021-12-085-5/+24
| | | | | | | | | | | | | | cursors on native windows Introduce a flag to QWindowsWindow which forces the cursor to be applied after restoring override cursors. Fixes: QTBUG-98856 Pick-to: 6.2 5.15 Change-Id: Id62cdc2dd01f45324503a542446b1c11a1fe6f44 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Keith Kyzivat <keith.kyzivat@qt.io> Reviewed-by: André de la Rocha <andre.rocha@qt.io>
* wasm: improve clipboard supportLorn Potter2021-12-083-77/+336
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for Clipboard API Add clipboard manual test Also includes these fixes: - improve clipboard use for chrome browser - make QClipboard::setText work - html copy and paste - image copy/paste Chrome browser supports text, html and png To use the Clipboard API, apps need to be served from a secure context (https). There is a fallback in the case of non secure context (http) - Firefox requires dom.events.asyncClipboard.read, dom.events.asyncClipboard.clipboardItem and dom.events.asyncClipboard.dataTransfer to be set from about:config, in order to support the Clipboard API. Change-Id: Ie4cb1bbb1dfc77e9655090a30967632780d15dd9 Fixes: QTBUG-74504 Fixes: QTBUG-93619 Fixes: QTBUG-79365 Fixes: QTBUG-86169 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Revert "Don't allocate an OCIDateTime object unless we're going to use it"Edward Welbourne2021-12-061-22/+7
| | | | | | | | | This reverts commit 064c3d35e6809672323e8d912e9140ddd0ad48cd. Reason for revert: Causes crashes on querying. Better to endure the non-NULL representations of null QDateTime values. Change-Id: I33dd3b95ab35d8e3accb864aec13d21764b1270d Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* wasm: make the compositor draw the window iconMorten Johan Sørvig2021-12-062-2/+9
| | | | | | | | | | | | | | | | Currently the compositor draws the Qt logo by default; check if the window has an icon and draw that instead if set. Fixes: QTBUG-86052 Pick-to: 6.2 Change-Id: Ia4f9c03562c15993c86cb8717f27e47ab669353d Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* Remove .prev_CMakeLists.txtKai Köhne2021-12-061-91/+0
| | | | | | | | These are left-overs from the initial qmake2cmake conversion. Pick-to: 6.2 Change-Id: Ie15c9ff022ea4566d10c1ba74599de9af83d29a7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QAbstractFileEngine: Add permission argument to open()Ievgenii Meshcheriakov2021-12-045-6/+13
| | | | | | | | | The new argument allows atomic creation of files with non-default permissions. Task-number: QTBUG-79750 Change-Id: I4c49455b41f924ba87148302c8d0f77f5de0832b Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QPA: Set focus reason when window activation changes focusVolker Hilsheimer2021-12-036-10/+10
| | | | | | | | | | | | | | | QApplication hides the fact that the reason is never set by several QPA plugins, but Quick items don't receive the correct reason on Windows, Android, the offscreen plugin, and other platforms. Add relevant scenario to the QFocusEvent test case, and fix the plugins to always set the focus reason when handling window activation changes. Exclude the minimal plugin from the test, it seems largely unmaintained anyway. Task-number: QTBUG-75862 Change-Id: I5404a225b387fc9a3851b6968d0777c687127ed1 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove XCB_EVENT_MASK_RESIZE_REDIRECT for Qt:WindowTransparentForInputInho Lee2021-12-031-1/+1
| | | | | | | | | | | | | In xcb plugin, XCB_EVENT_MASK_RESIZE_REDIRECT is set but it is not necessary. Mouse events are disabled by setTransparentForMouseEvents and there is no reason to have this event mask. Fixes: QTBUG-86372 Pick-to: 6.2 5.15 Change-Id: I2124b0684a0847d6705344bb5850bac178a292b6 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* OpenSSL: handle renegotiate errors by comparing certsMårten Nordheim2021-12-022-2/+52
| | | | | | | | | | | | If the certificate didn't change then our trust in it didn't either. Sadly, cannot have an autotest because we don't have any way to facilitate a renegotiation at the moment and with TLS 1.3 not having them at all it's unlikely we ever will. Pick-to: 6.2 5.15 Task-number: QTBUG-92231 Change-Id: Ibaa9b2f627daca05021c574e69526710aacdadae Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Use Android's View.generateViewId() for generating ids for views/surfacesMichał Cieślak2021-12-021-3/+7
| | | | | | | | | | | Qt Android was using consecutive numbers starting from 1 as ids for View.setId(int). The ids are used internally with an assumption that they are unique. It was potentially leading to collisions and unexpected behavior when adding custom views with id generated by View.generateViewId(). Task-number: QTBUG-98649 Pick-to: 5.15 6.2 Change-Id: I5bf2fe1d196c7adafeec544d8d945ebd82ba5cb6 Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Close leak of QOCIDateTime objectEdward Welbourne2021-12-021-0/+1
| | | | | | | | | | | Noticed while reviewing usage of this type. The code has a whole TempStorage class to take care of keeping allocated memory live until we're done with it, explicitly including date-time objects as a special case, but neglected to use it in one place. Pick-to: 6.2 5.15 Change-Id: Ic94c56d67dda6dc3ee36a025a2e0149f6b2a1837 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* qnx: Fix typos in source code commentsJonas Kvinge2021-12-023-3/+3
| | | | | Change-Id: I6420e14e3de9c7efc7d5073f44ccfd7ee9b88ea6 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* android: Fix typo in source code commentJonas Kvinge2021-12-021-1/+1
| | | | | Change-Id: Ieeab35d51588cf247c3d9626d0291e2983720873 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Support to get timing from pagefilpElvis Lee2021-12-033-3/+14
| | | | | | | | | Handle the timing from drmEvent when page flip finished. The information can be used to optimize rendering timing. Change-Id: I14612ca48a8fea5208aa74949d7543787e860c5f Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* wasm: Fix assert/crash when tooltip window is closed and mouse movedLorn Potter2021-12-011-3/+3
| | | | | | | | Fixes: QTBUG-92521 Pick-to: 5.15 6.2 Change-Id: I627fdcf3064321a3c1cb1140473038571ec78b9e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Openssl backend: reinsert a missing C in qCDebugMårten Nordheim2021-12-011-1/+1
| | | | | | Pick-to: 6.2 5.15 Change-Id: I2b13d2f88517abea7e015bfba4fe71dcbada86c0 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Don't allocate an OCIDateTime object unless we're going to use itEdward Welbourne2021-11-301-7/+22
| | | | | | | | | | | | | | | | | | | The QOCIDateTime destructor carefully checks that dateTime is non-null before tidying it away, but the constructor allocated it independently of whether it was used, leaving it in a still-not-constructed state if the date-time it was to represent was invalid. Only allocate if the date-time is valid; and check against null when an OCIDateTime is being converted back to QDateTime. Add warnings if either allocation or construction fails. Incidentally use static_cast<> instead of C-casting (and split a long line) in the other place that allocates an OCIDateTime descriptor. Pick-to: 6.2 5.15 Task-number: QTBUG-98471 Change-Id: Idd5531d9f7101878802cb9a3a016d3fd80903543 Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* wasm: fix mouse move and right clickLorn Potter2021-11-271-4/+8
| | | | | | | | | | | | Emscripten has no concept of 'no mouse button', so when there is no button down, it was sending left mouse. Also we were hiding mousepress for only leftmouse downs. Fixes: QTBUG-97431 Pick-to: 6.2 Change-Id: Ibf078705c343944e45551830b7fee94ed5aa7333 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* xcb: stablilize xkb state when keymap updatedLiang Qi2021-11-263-5/+22
| | | | | | | | | | | | | | | | QXcbKeyboard only deals with core_device_id. With the reporter's test case: using xdotool to send a string, the deviceID is not changed, then we assume xkb_state_new() is more stable(or correct) than xkb_x11_state_new_from_device() in this case. See also https://www.x.org/releases/current/doc/man/man3/xcb_xkb_new_keyboard_notify_event_t.3.xhtml . Fixes: QTBUG-95933 Pick-to: 6.2 5.15 Change-Id: Ic595e1f1424fbc6814871a85ac159907f1aeb12a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Zhang Hao <zhanghao@uniontech.com> Reviewed-by: Liang Qi <liang.qi@qt.io>