summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Windows QPA: fix grabWindow position calculation with real display DPIMorteza Jamshidi39 hours1-0/+20
| | | | | | | | | | | | | When dpi awareness is not set to PerMonitor, windows reports primary display or dummy DPI for all displays, so xIn and yIn and windowSize are calculated with a wrong DPI and used in BitBlt api, so we need to recalculate them using the actual screen size we get from EnumDisplaySettings api. Fixes: QTBUG-142030 Change-Id: If8ae61c6635b1e7115eb5ca0aaf6ed0caf47f82d Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* QWindows11Style: Rework alternating rows ItemViewsWladimir Leuschner3 days1-15/+27
| | | | | | | | | | | | | Current itemviews which use alternating rows use the wrong text color for selected items, also it is difficult to distinguish selected and hovered items in itemviews with alternating rows. This patch sets the right color for selected itemviews and is using a alpha mask to distinguish selected and hovered items. Fixes: QTBUG-137726 Change-Id: I1afc93e7426519a473b67b6f9b6da114218ec346 Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* Windows QPA: Destroy custom titlebar HWND on window destructionWladimir Leuschner3 days1-0/+2
| | | | | | | | | | Destroy the handle of the custom titlebar, when the parent window gets destroyed. Amends: 127468e053c84e089f0afc87704758ae360406e9 Fixes: QTBUG-141917 Pick-to: 6.11 6.10 6.9 Change-Id: I231408bfc31896df291546b897ed19068ec0cda8 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* macOS: Resolve GL surface format bits from GL rather than pixel formatTor Arne Vestbø3 days1-7/+14
| | | | | | | | | | | | The logic using the NSOpenGLPFAColorSize pixel format attribute was based on the color and alpha channels being the same size. This is not the case for formats such as 10-10-10-2. We now query the bits via GL instead, giving us per-channel answers. Fixes: QTBUG-142528 Pick-to: 6.11 6.10 6.8 6.5 Change-Id: Id237a5c0f0789d6e83ae225a0663a247a8fc1e33 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* gui: fix build with -qreal floatNick Shaforostov4 days1-1/+1
| | | | | | | | | | | | | | | in several places INT_MAX was implicitly converted to qreal. when qreal is float, the compiler warns: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648 [-Wimplicit-const-int-float-conversion] the conversion is made explicit now also in qfontengine.cpp operands are reordered to let compiler pre-calculate part of the expression Pick-to: 6.11 6.10 6.8 6.5 Change-Id: I7cba0f95e38d10f661dca9f085cf024a6f8a5f52 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* wasm: draganddrop Make sure dropaction is correct in all casesEven Oscar Andersen5 days1-6/+12
| | | | | | | | | | | | | | | | | We do not necessarily run the functions in QWasmDrag, but might instead run the QSimpleDrag object. So we cannot rely on m_dragState->dropAction, but have to get the dropAction from QSimpleDrag. To make QWasmDrag work we call setExecutedDropAction in the cases where it is needed. Also, do not retry the drag operation if jspi && IgnoreAction. Fixes: QTBUG-142512 Change-Id: I2f1548db50a064033d1071a07cc42f1488610905 Reviewed-by: Lorn Potter <lorn.potter@qt.io>
* QWindows11Style: Increase size of QTreeView branching indicatorWladimir Leuschner6 days1-1/+1
| | | | | | | | | | | Increase the size of the branching indicator for treeviews from 6pt to 8pt. Fixes: QTBUG-142400 Pick-to: 6.10 Change-Id: I64ccd3a217f799d77233d6212f232af4e31d2ef1 Reviewed-by: Morteza Jamshidi <morteza.jamshidi@qt.io> Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* wayland: Drop unused memberKonstantin Ritt6 days2-2/+0
| | | | | Change-Id: I809b68b9499de665276636b5a2c14300401e0ae9 Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
* macOS: Guard against missing platform window in viewDidChangeBackingPropertiesTor Arne Vestbø6 days1-0/+3
| | | | | | | | | | | | If the view outlives its platform window due to hanging around in some autorelease pool or strong reference we might get a callback for updated backing properties with no window to propagate them to. Fixes: QTBUG-137435 Pick-to: 6.10 6.8 Change-Id: I665d38f4fbed35f524cd46dfccdb885924cebd6c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* a11y uia: Notify about state changes of checkable item view itemsIngo Klöcker7 days1-2/+5
| | | | | | | | | | | To allow assistive technology on Windows to react to changes of the checked state of item view items send appropriate notifications also for the Cell, ListItem and TreeItem roles. Fixes: QTBUG-141856 Change-Id: I5ff341fa260ea95c0cf80bc25c141f9da0ea54da Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* xcb: check exactly the first bit of XdndStatus flags in QXcbDragYixue Wang7 days1-1/+1
| | | | | | | | | | https://www.freedesktop.org/wiki/Specifications/XDND/#clientmessages Client Messages->XdndStatus->data.l[1]: Bit 0 is set if the current target will accept the drop. Pick-to: 6.10 6.8 Change-Id: I6978f99f55d57c8025cc644ef837af154f44e7a8 Reviewed-by: Liang Qi <liang.qi@qt.io>
* wasm: fix memory problem when dropping dataEven Oscar Andersen8 days2-8/+10
| | | | | | | | | m_dragState could go out of scope before the callback in toMimeDataWithFile gets executed. Change-Id: I7e45b89a4ca856620ecff1701b3e9046ccb2891e Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Lorn Potter <lorn.potter@qt.io>
* wasm: enable drag&drop between browsersEven Oscar Andersen8 days5-1/+29
| | | | | | | | | works firefox -> firefox, and chrome -> chrome, but not firefox <-> chrome Change-Id: I9495e4775eb581e5732f27bce967416c069c601a Reviewed-by: Lorn Potter <lorn.potter@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Hook Qt::Key_Call and Qt::Key_Hangup for xkbMéven Car9 days1-0/+1
| | | | | | | | | As found in laptops, like thinkpads. And Key_Call for directfb. Change-Id: I7858f5c81cff43c1550716e4141eef8209e4794f Reviewed-by: David Edmundson <davidedmundson@kde.org>
* wasm: Cancel drag on mouse releaseEven Oscar Andersen9 days1-3/+8
| | | | | | | | Without this, a click on a drag object will leave the application in an inconsistent state. Change-Id: I78c9a7b044380ae0b84b16c1579583efa6a4810b Reviewed-by: Lorn Potter <lorn.potter@qt.io>
* wasm: Do not call preventDefault in dragstartedEven Oscar Andersen9 days1-2/+0
| | | | | | | | It blocks dragging. Change-Id: I9a0cdaeac29e96fac35b6e211f3da983fe2f9a6e Reviewed-by: Lorn Potter <lorn.potter@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Windows11Style: fix coloring QSpinBox/editable QComboBoxChristian Ehrlicher10 days1-48/+65
| | | | | | | | | | | | QSpinBox and (editable) QComboBox use a QLineEdit for the edit part. Therefore the coloring needs to be adjusted and a double painting of the QLineEdit background must be avoided. Also the geometries have to be adjusted here. Pick-to: 6.10 Fixes: QTBUG-142129 Change-Id: I2096323658aefc6ba305432c0daa4b5e445b5ac5 Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
* Windows11Style: Adjust size of QLineEdit in QComboBoxChristian Ehrlicher10 days1-8/+23
| | | | | | | | | | | The subControlRect for SC_ComboBoxEditField can't be used from the base style as it does not properly takes the PM_MenuButtonIndicator width into account which makes the lineedit to large. Pick-to: 6.10 Task-number: QTBUG-142129 Change-Id: Ic3e28cdb29bb9f9e23ac9956b601896af5bebf41 Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
* Windows11Style: make glyph constants enumerationsChristian Ehrlicher10 days1-65/+68
| | | | | | | | Use an enum class instead simple defines. Pick-to: 6.10 Change-Id: Ieb0e14134400d8263afe6e97e636478c9acb9e4e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Schannel: Don't access empty list of CommonName for local certificateMårten Nordheim10 days1-2/+7
| | | | | | | | | | | | | | | | I accidentally wrote the code under the assumption that the local certificate will have some sort of CommonName, but that is not necessarily the case. This made it impossible to use a certificate without one. Amends 94f0ff704ead631114ecd2e10ba0839dad1aae10 Pick-to: 6.10 6.8 Fixes: QTBUG-142324 Change-Id: Idfac0b50f3f2abd36b39c7687c9fce2b259c3806 Reviewed-by: Mate Barany <mate.barany@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* wasm: remove manual dead key translationLorn Potter10 days9-74/+8
| | | | | | | | | | | | Dead keys are now handled through QWasmInputContext. This removes the duplicated and previous method of dead key handling. Remove deadkeytranslator auto test, as it was testing the dead key translator class being removed. Change-Id: Ibada7ba873ff109d5ad2837a8d2fba354b7eb8c2 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Even Oscar Andersen <even.oscar.andersen@qt.io>
* wayland: Remove call to flushWindowSystemEventsBłażej Szczygieł10 days5-128/+2
| | | | | | | | | | | | | | | The flushWindowSystemEvents() call in flushRequests() was added in commit 84f1360289a to preserve event order when we had mixed synchronous and asynchronous expose events. That issue has been resolved in Qt 6.10 when we were able to make all expose calls synchronous, rendering this unneeded. Reverts 6ff771b86f7b961a5ff63f148cf69ecb3415dd95 Pick-to: 6.10 Fixes: QTBUG-139425 Fixes: QTBUG-141938 Change-Id: Idcf3dbc54dc9c3e37cdc586f9f872338e63f4f0d Reviewed-by: David Edmundson <davidedmundson@kde.org>
* SQL/MariaDB: Enable MYSQL_OPT_TLS_VERSIONChristian Ehrlicher11 days1-1/+1
| | | | | | | | | MYSQL_OPT_TLS_VERSION is supported since MariaDB C Connector 3.1.10 so we should enable it also for MariaDB. Pick-to: 6.10 Change-Id: Iaec42fa83bf6da42295d297455f07436afeae8d3 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Add computeWindowStyles helper to window class registryPavel Dubsky13 days2-20/+43
| | | | | | | | | Introduced computeWindowStyles to centralize logic for determining window class style flags based on window type, surface type, and properties like drop shadows. Change-Id: I3c3ddeb89b462f7a25754ae51e605f1fade7cf7f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Move hasIcon logic into computeHasIcon helperPavel Dubsky13 days2-6/+21
| | | | | | | | Introduced computeHasIcon to centralize logic determining whether a window class should include an icon, based on window type and flags. Change-Id: I4702bbb0833e90163382fb318f990c79fc0f93f5 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Extract classNameSuffix helper in window class registryPavel Dubsky14 days2-23/+33
| | | | | | | | Added a new helper function classNameSuffix to generate class name suffixes based on window type, style flags, and icon presence. Change-Id: I70c20f211255d9e79fc6e7e3b79dbefd861bf7be Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Wayland plugins: replace header guards with #pragma onceMarc Mutz14 days17-176/+18
| | | | | | | | | | | | | | | | | | | | | | Following qtbase/1c8884fc277c5916a420a3c14de68547a391f9fc's making syncqt error out when an installable header contains #pragma once, we can now flip the coin and use #pragma once as a static assertion that the given header is not going to be installed, making it easier to understand which headers are "public", which ones are "private" and which ones are "neither, since never installed". Do this for the Wayland platform support files, like 91f9ba2993a2652bcb349ce639aff67b5bfc8938 did for XCB. Since these headers are neither public nor private, also remove "We mean it" comments, where they existed. Had to exclude the QtWlShellIntegration headers, because, for some unknown reason, we install headers from the plugins/ subdir. Pick-to: 6.10 Change-Id: I92f336f79d23134e96cbac13088dbd352e2d3a84 Reviewed-by: David Redondo <qt@david-redondo.de>
* Add shouldDecorateWindowClassName to detect window class conflictsPavel Dubsky2025-11-282-6/+20
| | | | | | | | | | Introduces helper overloads that return true when a window class with the same name is already registered but uses a different window procedure. This will be used to decide when to register a new class with a decorated (UUID-suffixed) name. Change-Id: I613173e61152a6f717285a1d4943b01808c1a44e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Simplify WNDCLASSEX initialization in window class registryPavel Dubsky2025-11-281-10/+1
| | | | | | | | Replaced manual field-by-field zeroing with aggregate initialization and removed redundant assignments of default values. Change-Id: Ic2e974ef859d3142ae2077ef306403423c979d10 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* CMake: Automatically generate a vcpkg manifestJoerg Bornemann2025-11-271-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][configure] Added a -generate-vcpkg-manifest configure option. This generates a vcpkg.json file in the build directory. To just generate the manifest without configuring Qt, run configure with -generate-vcpkg-manifest -dry-run. [ChangeLog][configure] When configuring with -vcpkg, generate a vcpkg manifest file in the build directory, and set VCPKG_MANIFEST_DIR to the build directory to use that manifest file. You can turn off the manifest generation with -no-generate-vcpkg-manifest. You can turn off setting the manifest directory by passing -- -UVCPKG_MANIFEST_DIR to configure. Configuring with pure CMake won't generate a vcpkg.json. This patch adds a low-level CMake API for creating vcpkg manifests in QtVcpkgManifestHelpers.cmake. The functions qt_find_package and qt_feature gained arguments for creating dependencies in the manifest and add them to features. This adds a package dependency (not guarded by any feature): qt_find_package(WrapSystemFreetype 2.2.0 MODULE ... VCPKG_PORT freetype VCPKG_VERSION 2.3.4 ) This adds a package dependency `freetype` to the feature `freetype`: qt_find_package(WrapSystemFreetype 2.2.0 MODULE ... VCPKG_PORT freetype VCPKG_ADD_TO_FEATURE freetype ) This adds a feature `freetype` with `gui` as its "parent dependency": qt_vcpkg_scope(gui) ... qt_feature("freetype" PUBLIC PRIVATE SECTION "Fonts" LABEL "FreeType" PURPOSE "Supports the FreeType 2 font engine (and its supported font formats)." ) If features are turned on/off via configure arguments, we set the CMake variables VCPKG_MANIFEST_NO_DEFAULT to ON and VCPKG_MANIFEST_FEATURES to the list of corresponding vcpkg features to only install libraries that are needed for the build. For a per-repo build, we create a vcpkg.json with dependencies only for that repository. For a top-level build, we create a vcpkg.json with all dependencies of all repositories, excluding those that have been skipped (with configure's -skip argument). Task-number: QTBUG-73760 Change-Id: I6cc449d712f32d9e564acecaede5a7b31f309a8c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Unexport QCocoaSystemTrayIcon from Cocoa platform pluginTor Arne Vestbø2025-11-271-1/+1
| | | | | | | | We don't export symbols from the platform plugins. Pick-to: 6.10 6.8 6.5 Change-Id: Id3d801aba8b9fa59af9317602abffe6451be4c80 Reviewed-by: Tim Blechmann <tim.blechmann@qt.io>
* Rename m_proc to m_defaultProcedure in QWindowsWindowClassRegistryPavel Dubsky2025-11-272-5/+5
| | | | | Change-Id: I56a25033843c3c1ced047fe3e9072ee6014d182c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Wayland integration plugins: fix QT_END_NAMESPACE locationsMarc Mutz2025-11-274-11/+8
| | | | | | | | | | | | | | | Harmless, because QT_END_NAMESPACE is also just '}', but eyebrow-raising, so fix. Amends: - d8e37e4b03f9c786e1cb3dda80b050f05f974752 - 3bf9a581ee13cac988cdfadc7f22d472c1562214 - c2f156e27bf8865dc12108e1aba7cc78bd0dba38 - 6482bf50754e36a89e157ce94096be05b108db75 Pick-to: 6.10 Change-Id: Id59044023bfaf75ddc2bff024439f3d4a20d0936 Reviewed-by: David Redondo <qt@david-redondo.de>
* Wayland hw-integration headers: don't include yourselvesMarc Mutz2025-11-274-4/+0
| | | | | | | | | | Harmless, but ... eyebrow-raising. Amends 58e68f1981d0ba0a80e373dd5ca78a9260824c36. Pick-to: 6.10 Change-Id: Id5754a772c1e3244a88294390c98604bfe07f0ad Reviewed-by: David Redondo <qt@david-redondo.de>
* Windows11Style: add and use inputFillBrush()Christian Ehrlicher2025-11-272-11/+29
| | | | | | | | | | | | Input widgets have a slightly different styling as there is no 'pressed' state but an 'edit' state. The coloring for this state is also a little bit different (fillControlInputActive). Therefore add a corresponding function to controlFillBrush() to handle this case. Pick-to: 6.10 Task-number: QTBUG-142129 Change-Id: I5b2bf971cb5c7eb2ff8d63ffd381bfe7af659e9a Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
* Use categorized logging for window class (un)registration failuresPavel Dubsky2025-11-271-3/+4
| | | | | Change-Id: Ib4afaf179bed99bdbb1be6fc7deebbdb2e6d1627 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add QDebug stream operator for QWindowsWindowClassDescriptionPavel Dubsky2025-11-263-3/+16
| | | | | Change-Id: I18a569a8fefc8ccd27cd4aec4f0d323d461eb0bc Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Revert "qpa/wayland: fix handling textinput's focus object"Inho Lee2025-11-261-6/+4
| | | | | | | | | | | | | This reverts commit 97c891edd1dd0fda8d90ddea6da4d499f373a069. QTBUG-141475 is just a case using the client controlled enable/disable. Current implemention still has issues. So, another patch will fix the problem. Reopens: QTBUG-141475 Pick-to: 6.10 Change-Id: I23e5a3a6afa8fc2e1dc88296a585e1c33e045243 Reviewed-by: David Redondo <qt@david-redondo.de>
* macOS: Document the various open-file-or-url callbacks in our app delegateTor Arne Vestbø2025-11-261-0/+61
| | | | | | Pick-to: 6.10 Change-Id: I30a8a4b04f8b2bb40090ab810a5f84de0bd78ba4 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* iOS: Implement support for native save dialogsTor Arne Vestbø2025-11-262-18/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | The iOS equivalent is a UIDocumentPickerController that exports an existing file, so we need to create an empty temporary dummy file to be able to show the dialog. This is also how we give a suggested file name. Once the target file is chosen, it's available through the normal selected-file APIs, and the application can write to it through the normal security scoped file system backend. For some reason setting directoryURL to an inaccessible path, such as the .app bundle, results in the document picker showing an empty sheet. And in testing both open and save dialogs with the directoryURL set to a known good path (Documents), the iOS dialog still prefers to open to the user's last used path, so we skip the entire logic for save dialogs for now, to be on the safe side. [ChangeLog][iOS] Native file dialogs on iOS now support saving files. Task-number: QTBUG-120528 Change-Id: I10a0e6ce78b23163933ecf67269c54b618c30964 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* Add security scoped file engine for Apple operating systemsTor Arne Vestbø2025-11-264-23/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Apple operating systems where the app runs in a sandbox, the application can not access files outside of its sandbox without explicit user approval. This applies to iOS and friends, as well as optionally for macOS (when the sandbox is enabled, which is a requirement for publishing apps to the macOS App Store). When the user gives explicit access to a file or directory, we need to manage this access at runtime by starting and stopping the access via startAccessingSecurityScopedResource and stopAccessingSecurityScopedResource, and these functions must be balanced, to avoid leaking kernel resources. The access unfortunately doesn't persist automatically when the application terminates (unlike takePersistableUriPermission on Android), so we have to manually persist the access via security scoped bookmarks. We store these inside the app's own sandbox, in a way that limits the access to only that application, so persisting them on behalf of the user should be fine. The persisted bookmarks are loaded in the background on application start, ready for when the application wants to open earlier accessed file or directories. [ChangeLog][Apple] Sandboxed applications on Apple platforms, (including macOS if opted in to) can now access files outside of the application sandbox (so called security scoped resources) for both reading and writing. Files or folders chosen by the user via file dialogs or similar native mechanism are automatically and transparently handled, including persistent access across application and device restarts. Fixes: QTBUG-120528 Task-number: QTBUG-117832 Task-number: QTBUG-120528 Task-number: QTBUG-141414 Change-Id: I90d94066cbf7cd74750049d5d1b990917fd10cad Reviewed-by: Doris Verria <doris.verria@qt.io>
* Use _L1 string literal helpers in window class registrationPavel Dubsky2025-11-263-3/+5
| | | | | Change-Id: Icebc05fe01ef814dbd4a48519cdfa937e66104d6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* macOS: Use non-native file dialog if sandboxed app is missing entitlementTor Arne Vestbø2025-11-261-0/+20
| | | | | | | | | | | | | | | | If a sandboxed app is missing the user-selected read-only or read-write entitlement the native file dialogs will fail to open (and will break in the debugger via REPORT_APP_ENTITLEMENTS_INSUFFICIENT if running in Xcode). The non-native file dialogs still work, but will just show the files we have access to through the app's bundle and sandbox. But it's better than nothing. Fixes: QTBUG-141415 Pick-to: 6.10 6.8 6.5 Change-Id: Ia2007e5c03df73156bc4e2a2badf8a7145a83ded Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Windows11Style: avoid cast from QString to QChar and backChristian Ehrlicher2025-11-261-1/+1
| | | | | | | | | The WinFontEngine now takes a QString, no need to convert a QString to a QChar anymore. Pick-to: 6.10 Change-Id: I3ac8f54ebc7992c85c2b8956d18ab2c068d66022 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Windows11Style: Also draw 'edit' frame for QPlainTextEditChristian Ehrlicher2025-11-261-1/+4
| | | | | | | | | The blue 'edit' frame was only drawn for QTextEdit but not for QPlainTextEdit. Pick-to: 6.10 Change-Id: If5e2082e174be8d4b3adc87150c37ba2efc5a9c2 Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
* Windows11Style: fix alignment of QPushButton iconChristian Ehrlicher2025-11-261-30/+4
| | | | | | | | | | | | The alignment of the icon on a QPushButton was not correctly calculated. Since the drawing for CE_PushButtonLabel is exactly the same as in QCommonStyle go the easy way: Adjust the two different parameters (rect and text color) and call the base class implementation instead. Pick-to: 6.10 Fixes: QTBUG-142083 Change-Id: I9b47dd19a19b8676ab443ae1e3a84a1a9fa62ff9 Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
* wasm: fix composition for mobile inputLorn Potter2025-11-263-50/+117
| | | | | | | | | | | | | Take into account replacement range from the native inputmethod. also remove unused, commented out code Pick-to: 6.10 Fixes: QTBUG-138087 Fixes: QTBUG-138821 Change-Id: Ie4616f5dcc60c2e3e7d7b9c3a41373642567e9e4 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Add shouldAddSuffix to QWindowsWindowClassDescriptionPavel Dubsky2025-11-259-13/+19
| | | | | Change-Id: Ibbcfb8ff728f7fb292dcf6bac03234f1ed88007d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Simplify [QNSView screenMousePoint:]Tor Arne Vestbø2025-11-251-2/+1
| | | | | | | | There's a built in function for mapping points to screen now. Pick-to: 6.10 Change-Id: I060cc9ba61899e4d96565fd745d93aff763a4c7a Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* wasm: drive animations using requestAnimationFrameMorten Sørvig2025-11-252-48/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Drive QAbstractAnimaton-based animations using RAF. This has two main benefits: * The animation update rate automatically adapts to the screen refresh rate * The animation update happens in sync with the draw callback, instead of as an extra wakeup in between frames. Add QWasmAnimationDriver, which replaces QDefaultAnimationDriver for Q_OS_WASM. Add QWasmAnimationFrameMultiHandler. This class supports multiplexing multiple animation and draw callbacks to a single native requestAnimation call. It also orders the callbacks such that animation callbacks are called before draw callbacks. Make QWindow::requestUpdate() use the new multi-handler (via QWasmCompositor, as before) Fixes: QTBUG-133695 Change-Id: I0a3fda562a7ba2e8d659d707335d1ce116f71bd9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Even Oscar Andersen <even.oscar.andersen@qt.io>