summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
Commit message (Collapse)AuthorAgeFilesLines
* Update usage of QFontMetrics::width() to new APIEskil Abrahamsen Blomfeldt2017-12-081-1/+1
| | | | | | | | | | | | | | QFontMetrics(F)::width() has been deprecated and is replaced by horizontalAdvance(). This updates all usage of it in tests and documentation. It is worth noting that many or most of the usages of QFontMetrics::width() probably intended to use boundingRect().width(), but since it currently works, I have not looked into that, just replaced the function name mechanically. Change-Id: Iec382e5bad0b50f37a6cfff841bfb46ed4d4555f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Android: port away from QRegion::rects()Marc Mutz2017-12-081-2/+3
| | | | | | | | | | | | | Use being()/end() instead. The region of whose rects() we iterate here is modified in the loop body, so take a copy of the rectangles. Since QVector is still missing a range constructor, use std::vector. This does not cause extra copies, since the QVector inside QRegion would detach anyway, when the QRegion is modified inside the loop. Change-Id: Ib973e825b55d9c9568936cb80180858163d87379 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* xcb: port away from last QRegion::rects()Marc Mutz2017-12-061-5/+4
| | | | | | | | | | | Use begin()/end() instead. In QXcbShmImage::flushPixmap(), instead of gettings different rects(), depending on a bool parameter, just call yourself again with the modified QRegion, which we can then just iterate over. Change-Id: I6d4f7c6e4e5d2a24520716847ca9331bf39337c8 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* xcb: share code for QRegion -> xcb_rectangle_t[] conversionMarc Mutz2017-12-063-14/+13
| | | | | | | | | | ... between QXcbWindow and QxcbShmImage. Replaces one QRegion::rects() call (to be deprecated), fixes potential overflows that QXcbShmImage did not handle, but QXcbWindow did, and saves ~1KiB of text size. Change-Id: I55d37021164feefe0cb3e60bd6d22b1976a6467b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* xcb: use a more efficient unique_ptr instantiationMarc Mutz2017-12-061-6/+8
| | | | | | | | | | Wrap std::free() in a function object, to avoid having to carry around state (the function pointer) inside unique_ptr objects. This shrinks unique_ptrs back to sizeof(void*). Change-Id: I32a711192c5485dc04e3b36a1ddabf02d1e9d4f9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* xcb: remove redundant QT_XCB_DEBUG_XINPUT* envvarsGatis Paeglis2017-12-061-6/+0
| | | | | | | | | | | | | In Qt 5.4 these envvars were replaced with categorized logging 59ba84d31cf17d86e615e2958fece6f6e0bbefe2. This is not a public API, the log output is useful mostly for developers and it can still be used via QT_LOGGING_RULES, so there is no good reason to keep the old envvars around. By using QT_LOGGING_RULES, we can access even more xinput2 logs than is available via QT_XCB_DEBUG_XINPUT*. Change-Id: I2b12b8696043bc8bf8310f49f0cdc2ba1b8708ba Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* platform plugins: port away from QRegion::rects()Marc Mutz2017-12-064-14/+13
| | | | | | | Use begin()/end()/rectCount() instead. Change-Id: I5c642c4a2c64da65d3f37159396c86073818ca95 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* minimal QPA: Make font DB creation more flexibleGabriel de Dietrich2017-12-043-7/+30
| | | | | | | | | | | | Prioritize CoreText over Fontconfig since the former is the native one on macOS, and any other native font DB on its respective platform. We introduce a new 'fontconfig' option to allow using Fontconfig instead. This works similarly to 'freetype' overriding the default font engine on Windows. A propos of which, 'freetype' now does the same on macOS. Change-Id: Ic8168820d1d01fddc2f26e046abb65b8ab765f89 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* macx-clang: Opt-in xcb QPA support with XQuartzGabriel de Dietrich2017-12-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Enable xcb QPA plugin when XQuartz is available. This is done in a single build, alongside the Cocoa version. We delegate part of the configuration stage to pkg-config, so this becomes a requirement. Ensure that PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig:/opt/X11/share/pkgconfig is in your environment, or pkg-config is properly set up. Tested with the following configure options: configure \ -pkg-config \ -fontconfig -system-freetype \ -system-xcb -xkb -no-opengl \ -qt-xkbcommon -qt-xkbcommon-x11 Change-Id: I2eb5a0491172368afc4c629c540cbef08580348d Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge remote-tracking branch 'origin/5.10' into devLiang Qi2017-11-3011-40/+45
|\ | | | | | | | | | | | | | | | | Conflicts: src/corelib/thread/qsemaphore.cpp tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp Change-Id: Id35b535e88df63fdfe4007ea92ed4a39c4b6d707
| * iOS: Don't set background color when debugging window managementTor Arne Vestbø2017-11-291-1/+0
| | | | | | | | | | | | | | It will fill the view in some cases, obscuring what Qt draws. Change-Id: I9ca00dddd829a28fb2cb3b009bfd3223f85ef7cb Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * iOS: Use environment variables for debug flags instead of QObject propertiesTor Arne Vestbø2017-11-284-21/+2
| | | | | | | | | | | | | | | | The former is more idiomatic in Qt, and doesn't require as much boilerplate to set up. Change-Id: Idf03af4018611c8eb3b31af90da72f9d85617b2c Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * [android] Fix compile with -warnings-are-errorsBogDan Vatra2017-11-241-1/+0
| | | | | | | | | | | | | | Remove unused variable Change-Id: I64da66da0c17131de6280660576f2789696e86b3 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-11-236-13/+37
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qstandardpaths_win.cpp src/plugins/platforms/ios/qioswindow.mm src/plugins/platforms/ios/quiview.mm tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp Change-Id: I5deb0a0176a454a9c566e924d074ba60ce04f0bc
| | * iOS: Take UIWindow bounds into account when making window fullscreenTor Arne Vestbø2017-11-221-5/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | When an app is in split-view mode, the app can't use the full bounds of the screen, but should limit its area to that of its UIWindow. Task-number: QTBUG-48225 Change-Id: Ia66ad6bba24d9d73a8263ad3f65b9dee9b8a1b37 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * iOS: Add logging of window geometry/exposureTor Arne Vestbø2017-11-213-0/+4
| | | | | | | | | | | | | | | Change-Id: I6ffc7cd1dde4fadd3e952deabe9c3a1dbce7884d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * iOS: Make sure FBOs are cleaned up in the right QIOSContextTor Arne Vestbø2017-11-211-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 655687d84d6a591422 shuffled things around, moving the logic to connect to the window's destroyed signal from backingFramebufferObjectFor into makeCurrent. Unfortunately backingFramebufferObjectFor was the one taking care of recursing into the root context (when shared contexts were in play), so the end result was that the root context were keeping track of the FBO, but the leaf context was trying to clean up the FBO. Task-number: QTBUG-56653 Change-Id: I80ed71a3dedeb7611b2aa7548d94b9fbe0e20763 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * qpa: Teach handleApplicationStateChanged about sync/async deliveryTor Arne Vestbø2017-11-203-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using QWindowSystemInterface::SynchronousDelivery reduces the chance that we are flushing other events before delivering the application state change. Those other events may conclude that the application is still active, while in reality it is not, and do bad things. Change-Id: I738c162fac22d2cd18de1e080bcd2cda78ec3f77 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| * | Cocoa: Update layer contentsScale on screen changeMorten Johan Sørvig2017-11-221-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Failure to do so will result in displaying the layer contents on a quarter of the window when moving the window from a 2x screen to a 1x screen. Task-number: QTBUG-64494 Change-Id: I57ce98025e841549f62d132d4985e727898e6207 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| * | iOS: Remove forced Qt::AA_ShareOpenGLContextsTor Arne Vestbø2017-11-211-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 8e70241dccaf removed the need for having a global sharecontext to be able to composit GL and raster content in the backingstore, but forgot to remove this part of the iOS platform. Change-Id: I46ffd766729369aff2f8c54799bd033905c9f3dc Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge "Merge remote-tracking branch 'origin/5.10' into dev" into ↵Thiago Macieira2017-11-3022-43/+222
|\ \ \ | | | | | | | | | | | | refs/staging/dev
| * | | Merge remote-tracking branch 'origin/5.10' into devLiang Qi2017-11-2322-43/+222
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/network/access/qhttp2protocolhandler_p.h src/network/kernel/kernel.pri src/network/ssl/qsslkey_qt.cpp src/plugins/platforms/cocoa/qcocoascreen.mm src/plugins/platforms/windows/accessible/iaccessible2.cpp src/plugins/platforms/windows/accessible/iaccessible2.h src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h src/widgets/widgets/qmenu_p.h tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp tests/auto/other/qaccessibility/tst_qaccessibility.cpp tests/auto/testlib/selftests/expected_cmptest.lightxml tests/auto/testlib/selftests/expected_cmptest.teamcity tests/auto/testlib/selftests/expected_cmptest.txt tests/auto/testlib/selftests/expected_cmptest.xml Done-with: Edward Welbourne <edward.welbourne@qt.io> Change-Id: I4217cc7d840cbae3e3dd28574741544469c4c6b9
| | * | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-11-151-0/+1
| | |\| | | | | | | | | | | | | Change-Id: I2f8f6b1d196548087219739faa3ad1517626da1e
| | | * Cocoa: Make High DPI drag cursor workMorten Johan Sørvig2017-11-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ide4bc50ab7173529a00fe60a04204bad0b3f275e Task-id: QTBUG-60769 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| | * | Offscreen QPA: Use fusion style alwaysFriedemann Kleint2017-11-142-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevent it from crashing when naively using it for example on Windows, which defaults to the Windows Vista style operating on native window handles. Change-Id: I7b1dfb00a6b6860d0f0a134653ce1142b45959ec Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io> Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
| | * | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-11-099-12/+50
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qwindow.cpp src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/windows/qwindowssystemtrayicon.cpp src/plugins/platforms/xcb/qxcbconnection_xi2.cpp tests/auto/corelib/io/qtemporarydir/tst_qtemporarydir.cpp tests/auto/widgets/kernel/qaction/tst_qaction.cpp Change-Id: Ifa515dc0ece7eb1471b00c1214149629a7e6a233
| | | * QCocoaMenuItem: Don't clear NSMenuItem.action when setting submenuGabriel de Dietrich2017-11-071-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Contrarily to what the comment stated, we actually rely on automatic menu validation, even for submenu items. This is visible in the menu delegate's validateMenuItem: and itemFired: methods. This solves the last visible issue in BigMenuCreator where, under ASP/ASP, ASP/SAP, SAP/ASP and SAP/SAP, all A*S submenus would be disabled. The cause was an incorrect target/action setup. Menurama still behaves as expected. Change-Id: I2599d6fb0d51f56f5d36f03b69647e35ff6c550a Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
| | | * Cocoa: optimize backingstore flush on 10-bit displaysMorten Johan Sørvig2017-11-061-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt draws the backing store to the window using CoreGrahics, which will trigger a slow RGB32 -> RGB64 conversion when the output display is a deep color display. Disable NSWindow dynamicDepthLimit and force the depthLimit to WindowDepthTwentyforBitRGB for the common case of 8-bit-per-component raster surfaces. This was benchmarked by resizing a simple QRasterWindow test case which fills the window area using QPainter::fillRect(). Before: 67.1% rgba64_image_mark_rgb32 10.8% __vImageCopyBuffer_block_invoke 6.0% madvise 5.0% _kernelrpc_mach_vm_deallocate_trap 4.1% qt_memfill32(unsigned int*, unsigned int, int) After: 30.7% __vImageCopyBuffer_block_invoke 20.3% madvise 12.3% __vOverwriteChannelsWithScalar_ARGB8888_block_invoke 12.2% qt_memfill32(unsigned int*, unsigned int, int) 4.6% _kernelrpc_mach_vm_deallocate_trap The test program now spends significantly more of its time allocating/deallocating the backing store (madvise), and running the Qt paint event (qt_memfill32). Task-number: QTBUG-47660 Change-Id: I878be7a0e6eee4ad798f7a53f7f9f79b7950af26 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| | | * Xinput: Avoid misdetecting certain trackballs as tabletsEirik Aavitsland2017-11-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The algorithm triggers on the word "cursor" in the device name, which would also happen for devices from the manufacturer Cursor Controls. Task-number: QTBUG-48034 Change-Id: I9645c0d0bc1fa951d0ea00480572fd0df0220eb5 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | | * QCocoaMenu: Attach menu items when updating the menubarGabriel de Dietrich2017-11-054-4/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of waiting for the menu delegate to update each item, we can attach an NSMenu to its NSMenuItem as soon as we update the current window's menubar. This is safe to do because we know that this is going to be the main menubar right after, so we're not orphaning any NSMenuItem from its NSMenu at the wrong moment. By doing this, we also ensure that all menus from the active menubar are reachable by the key-equivalent dispatching logic, even before we display the actual menu. This was shown in BigMenuCreator where, under the menubar's ASP and SAP menus, all A*S submenus would be disabled. Furthermore, on the same menus, SAP would show the same issue. Added test in Menurama as well. Change-Id: If6e7311072e6b53ad1cbced73623d1832aa0df8e Task-number: QTBUG-57076 Task-number: QTBUG-63712 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
| | | * Windows QPA: Pass on Url of non-filesystem directory itemsFriedemann Kleint2017-11-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not attempt to copy directory items, which will fail and result in empty result lists. Amends 5865e582fd537fff530c13301e5229a7b4ed21c7. Task-number: QTBUG-57070 Task-number: QTBUG-63645 Change-Id: I59efce196b28099ec8aff5a802ef0a4d9a098453 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| | | * Windows QPA: Restrict file dialog to file system items in Directory modeFriedemann Kleint2017-11-041-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt cannot handle places like 'Network', etc. Task-number: QTBUG-63645 Change-Id: I53d0eedc2996af6a1ec3230e3d65a3e272aa3710 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| | * | macOS: Fall back to QWindow::icon for application icon if not setTor Arne Vestbø2017-11-072-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are three ways to set the application (Dock/task switcher) icon: 1. By setting an ICON in the project file 2. By calling QGuiApplication::setWindowIcon 3. By calling QWindow::setIcon The third one was not working on macOS, despite being documented as such: "The window icon might be used by the windowing system for example to decorate the window, and/or in the task switcher." We now update the application icon based on the active window, unless a global application icon has been set using ICON, or via QGuiApplication::setWindowIcon. The reason for not allowing the window's icon to override a global application icon is that the developer may have intended to set the document icon for a window (to represent QWindow::filePath), and we don't want that to affect the Dock icon of the application. The role of QGuiApplication::setWindowIcon is a bit dubious in this, as it's documented as "This property holds the default window icon", which would indicate it should follow the same logic as above by not letting it override the global ICON set in the project file, but this would not allow runtime switching of the application icon, so the QGuiApplication property is left as is. The property should probably have been named QGuiApplication::applicationIcon initially. Task-number: QTBUG-63340 Change-Id: I94d3710a8586bb729af42f59a915b8f49dded101 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
| | * | macOS: Add logging of screen add/remove/changesTor Arne Vestbø2017-11-043-0/+27
| | | | | | | | | | | | | | | | | | | | Change-Id: Ic9c9ac307441dde98bb43d656466a03805746917 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
| | * | Replace <QtCore/QtConfig> includes with qglobal.hAlexandru Croitor2017-11-035-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nothing (except the *global*.h headers themselves) is supposed to include the generated *config*.h files directly. The QtConfig forwarding header should not exist in the first place. Change-Id: I5e9edd25d905582381cdc6386804c1f3ef8716ae Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| | * | macOS: Add categorized logging of event and notification forwardingTor Arne Vestbø2017-11-022-1/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Useful for debugging issues in this area. Change-Id: Ic343ef790e20b66371028265efe2ec1816c954bd Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * | macOS: Retain NSWindow during event deliveryTor Arne Vestbø2017-11-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have logic to deal with self.platformWindow and frame strut mouse events which happens after delivering the event to the NSWindow, but delivering it might dealloc the window, e.g. when closing it, so we need to explicitly retain it for the duration of [QNSWindow sendEvent:] Task-number: QTBUG-64023 Change-Id: I223fe3e3ac36a309da375522ba11f20f1ad6fc4f Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
| | * | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-10-306-29/+31
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/windows/qwindowswindow.cpp tests/auto/widgets/kernel/qaction/tst_qaction.cpp Change-Id: Ia017a825ed2ca2d53ac586f4ae48df6f65818d40
| | | * Windows QPA: Restrict warning about geometry failureFriedemann Kleint2017-10-271-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Print warning only for visible windows or in debug mode. Task-number: QTBUG-63661 Change-Id: I742c86afcb40455074a6de753b0b1ce6a11d55af Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| | | * Refactor childIdListForAccessibleObjectJan Arve Sæther2017-10-251-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It has several problems: 1. It could potentially create an intArray with uninitialized elements. This could happen because the index for getting interfaces were the same as the storage index. This was not correct, because they could diverge if iface->child() returned an invalid interface. 2. The count of accessible child elements could change while iterating. This could cause out-of-bounds condition when calling SetIntArrayRegion as described in QTBUG-45855. Instead now, we call SetIntArrayRegion only once, after we have gathered all the child interface ids. Task-number: QTBUG-45855 Change-Id: I77e813158df5f563d04931ac4e296e3fc2a16e67 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
| | | * Cocoa QPA: Code clean up, make some bits more readableGabriel de Dietrich2017-10-244-21/+22
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I7f37c1b0f7f72a79bb2ac5828ba54111a90a0a00 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | | xcb: Use fallbacks for Xcursor namesAlexander Volkov2017-11-231-40/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some cursor themes may not contain cursors with common names, then fallback names should be used. The fallbacks in this change were taken from the wayland plugin. Change-Id: I7fcc47a71cafe41c88a21a7168acd3a274b71693 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | | xcb: Speed-up image scrollingBłażej Szczygieł2017-11-232-47/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevent image scrolling on client-side whenever possible - do it on server-side. When using shared memory use server-side pixmap for scrolled contents. Put new image which will be scrolled to the server-side pixmap and do scroll on it. Then do a server-side copy of a scrolled area from pixmap to he window. Also put non-scrolled image directly to the window. When not using shared memory also don't do redundand client-side image scrolling. When using OpenGL compositing first copy scrolled image area from/to server-side pixmap. Task-number: QTBUG-64414 Change-Id: Ibf5f8cfb40cd4fb3e4a75a1b92eecb625f4fd74f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | | Windows QPA: Detect a SetParent into a native window and set isEmbeddedAndre de la Rocha2017-11-211-1/+9
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Detecting that a Qt window has been reparented into a native window and setting isEmbedded automatically. While there is no specific message for the change in the parent window, a WM_WINDOWPOSCHANGING message indicating a change in the Z order is sent. We can recognize an embedding condition by detecting that our QWindow does not have another QWindow as a parent, but the HWND associated with it has another HWND as a parent, which is not the desktop window. This change should cover the use case where a Qt-based plugin must return a HWND to a host application, where the host application will then reparent the HWND as it sees fit, outside of Qt control. Task-number: QTBUG-64116 Change-Id: Iec417c0dd55ad68eff1ea75bb6f5b5495489c31e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | Add support for Windows UI AutomationAndre de la Rocha2017-11-1446-3978/+4686
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaces the Qt Accessibility Windows back end, formerly based on legacy MSAA, with a new implementation based on UI Automation. Fixes issues with accessibility tools like screen readers and magnifiers, and with the automatic showing and hiding of the virtual keyboard in touchscreen-based Windows computers. [ChangeLog][Windows] The Windows Accessibility back end, formerly based on Microsoft Active Accessibility, was replaced with a new implementation based on Microsoft UI Automation. Task-number: QTPM-487 Task-number: QTBUG-53024 Task-number: QTBUG-43190 Task-number: QTBUG-61926 Task-number: QTBUG-38499 Task-number: QTBUG-38337 Task-number: QTBUG-38501 Task-number: QTBUG-38502 Task-number: QTBUG-38504 Task-number: QTBUG-38505 Task-number: QTBUG-38507 Change-Id: I20b4f8f5e938fef791c6e9c577fcd919140999bd Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | | macOS: Remove unused method QCocoaWindow::nativeWindowGeometryTor Arne Vestbø2017-11-132-15/+0
| | | | | | | | | | | | | | | | | | | | | Its usage was removed in ef32f16fc284e5017. Change-Id: I5101131e401e615231ab05b241dd5b670f6a5a61 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | | macOS: Simplify helpers for flipping between quadrant I and IVTor Arne Vestbø2017-11-089-122/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The different flip-functions have been replaced by a single function, qt_mac_flip, with overloads for points and rects. This function is primarily used to implement QCocoaScreen::map(To|From)Native, which most clients of qt_flip* have been moved to. This makes it clearer what kind of reference geometry we're flipping in relation to, and simplifies call-sites. Change-Id: I8a0862f94bb2c64a83a1c3168f984a195c0af6db Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | | macOS: Replace deprecated CGDisplayIOServicePort functionTor Arne Vestbø2017-11-083-6/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | There's no replacement function from Apple's side, so we have to iterate the available displays and pick the right one based on the vendor, product and serial number. Change-Id: I437bee06bc6826c3214a701cd2c65f6109eeb3e7 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | | macOS: Disable CUPS PPD deprecation warnings for QCocoaPrintDeviceTor Arne Vestbø2017-11-081-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're not going to rewrite this code until we can also share the rewrite with QPpdPrintDevice, which can only happen once we drop support for RHEL 6, which still ships CUPS 1.4. Until then, silence these deprecation warnings so that they don't add noise to other potential build warnings/issues. This matches the approach taken by Chromium in crbug.com/622493. Task-number: QTBUG-56545 Change-Id: Ia308ae1e8064dc046745350b0be3992d02f2b760 Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | | macOS: Replace deprecated use of qSort with std::sortTor Arne Vestbø2017-11-071-1/+1
| | | | | | | | | | | | | | | Change-Id: Ic93f4ccb3ec2f09a4198ae9892923aae4ee00dc9 Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>