summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
Commit message (Collapse)AuthorAgeFilesLines
* Windows QPA: Call raise unconditionally for popupsFriedemann Kleint2017-08-221-1/+3
| | | | | | | | | | | | A case of nested Qt::WindowStaysOnTopHint may occur when context menus are created on windows with Qt::WindowStaysOnTopHint set. Raise the popup in that case. Amends 329a029c361bcbaf70f3aa919693f0bef48a152f. Task-number: QTBUG-62004 Change-Id: Ifb761edbd42b1447bec30735810c006d02e1aa97 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Android: stop composing before pasting new textPaul Olav Tvete2017-08-211-1/+2
| | | | | | | | | | We have to exit composition mode before inserting text. Otherwise, the state of the input method will be out of sync with the contents of the text editor. Task-number: QTBUG-61717 Change-Id: I58bf3988ae9e0acf3302e810e46bb0ebeda30d17 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* kms: Send enter and leave events to all screensPier Luigi Fiorini2017-08-201-0/+2
| | | | | | | | Propage event to all sibling screens resulting in enter and leave events being properly sent. Change-Id: Ia89d53105f6303fae3f304ce0920b5a4a24f86ae Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Android: Fix compile using ndkr15 clang and unified headersBogDan Vatra2017-08-182-0/+2
| | | | | | | Add missing includes Change-Id: I6fd58c9ebb5a8099c99928e3a7a0cbf3aa23ba43 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* XCB: Don't core-dump if we can't connect to the X displayNameThiago Macieira2017-08-163-8/+30
| | | | | | | Exit with error, but don't crash. Change-Id: Ie05c6480d8a44fda817ffffd14d9dfd8c951beef Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* QCocoaMenu: Sync menubar menu when adding itemsGabriel de Dietrich2017-08-152-1/+8
| | | | | | | | | | | | | Empty menus on a menubar are hidden by default. If the menu gets added to the menubar before it contains any item, we need to get the menubar to sync the menu, which will update its native menu item hidden property. Menurama manual test's 'Add Many Items' button should now work. Change-Id: I8ce1df21031c171789318fdf28ae495819458d71 Task-number: QTBUG-62260 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QCocoaMenu: De-pessimize the number of calls to validateMenuItem:Gabriel de Dietrich2017-08-152-2/+21
| | | | | | | | | | | | | Calling -[NSMenu update] every time we add a new item can result in a quadratic behavior since the function itself will iterate over all the items in the menu. We solve this by using a 0-timer which will trigger the call to update the next time the event loop spins. Menurama manual test updated. Change-Id: Ic155d364515cc93eb81b1c8085c8e44c93799954 Task-number: QTBUG-62396 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* macOS: Make alpha-based click-trough work againMorten Johan Sørvig2017-08-091-2/+12
| | | | | | | | | | | | | | | | | | | | Commit 3ea04c7d made it so that we always set the ignoresMouseEvent property on the NSWindow, based on the WindowTransparentForInput flag. However, this overwrites the magical secret initial state where click-trough is determined based on window content transparency - setting the property to false makes the window capture all events. Restore 5.6 behavior by not modifying ignoresMouseEvent if we can. Toggling WindowTransparentForInput on and off again is still broken. Task-number: QTBUG-54830 Change-Id: I5f44ce14d9a7dc1713f9efb1ef929e2969838d90 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* XCB GLX: request OpenGL 4.6 / OpenGL ES 3.2 if possibleGiuseppe D'Angelo2017-08-041-4/+4
| | | | | | | | | Code was lagging a bit behind published standards. Change-Id: I0fe07c0162a54d9eed8b539887496b9313b37aa4 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix composition on xcb with misconfigured ibusAllan Sandfeld Jensen2017-07-311-1/+4
| | | | | | | | | | If ibus has been set, but either isn't installed or doesn't launch, all composition fails on xcb. This ensures we fallback to "compose" which is needed for working composition on XCB. Change-Id: Ic2061c330bcb907759a13920c3eede14f3036563 Reviewed-by: René J.V. Bertin <rjvbertin@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* winrt: Fix platform theme for non-phone devicesOliver Wolff2017-07-271-5/+32
| | | | | | | | | | | When running on a desktop machine (using Windws SDK 10.0.14393) the palette had fully transparent text colors which were assigned in the "phone only" part of the theme's initialization. By checking the API contract we can avoid that part of the initialization and thus return proper values. Change-Id: Id770a686c1c7e447a9594830fd7670352116eb21 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Use correct DRM event context versionJonathan Liu2017-07-262-2/+2
| | | | | | | | | | | | | | Explicitly declare which DRM event context version we want to use, rather than just the latest one libdrm supports. New versions may change semantics, or extend the structure, in ways we're unaware of. Stick with version 2, which is the version that introduced page_flip_handler. Change-Id: I1d2066d5ab485ea571f016a8660829f435821c82 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix memory leakJesus Fernandez2017-07-251-0/+1
| | | | | | | | | | | CID 10994 (#1 of 1): Resource leak in object (CTOR_DTOR_LEAK) The font database was not destroyed in the destructor. Coverity-Id: 10994 Change-Id: Ibd4cb0b65d1e554593295a3654e8d8c946551cc2 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
* Fix 32-bit build on macOSJake Petroules2017-07-203-3/+13
| | | | | | | | | | Some customers still need this for interoperability with legacy code. Let's continue to keep it working in 5.9.x, and then move to 64-bit exclusive features (thus dropping 32-bit entirely) in 5.10. Task-number: QTBUG-58401 Change-Id: Ibb7200c1885e9caba70439df5f7c86c81b1312b5 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* Skip EGL surface re-creation when the buffer size is unchangedJames McDonnell2017-07-201-4/+10
| | | | | | | | | | | Skip EGL surface re-creation when a sequence of unprocessed resizing requests leaves the buffer size unchanged. In this situation, the buffers won't be resized. Recreating the surface without resizing the buffers leads to screen providing incorrect information about the buffers. Change-Id: I1f75ab99eb1dffe0bcf9660bf014f047407b0c1b Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* xcb: fix freeze when (un)plugging input devicesGatis Paeglis2017-07-192-11/+18
| | | | | | | | | | | | | | | | | | | | .. in an application that has many native windows. We don't need to select XI_HierarchyChangedMask and XI_DeviceChangedMask for every window. It is enough to register one window for these events to update state of our X11 client (application). Furthermore, XIAllDevices and XIAllMasterDevices always apply, even if the device has been added after the client has selected for events. So there is no need to call XISelectEvents on XIAllDevices/XIAllMasterDevices again, if we are not updating event masks. With this patch and the test application from QTBUG-57013, removing/attaching a device takes few hundred milliseconds instead of 23-24 seconds. Task-number: QTBUG-57013 Change-Id: Ieb0b5ee25feef2922f901165825cb4a1289fc852 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Windows QPA: Fix local position reported for enter eventsFriedemann Kleint2017-07-191-4/+5
| | | | | | | | | Use QPlatformWindow::mapFromGlobal() instead of QWindow:::mapFromGlobal() as QPA operates in device pixels. Task-number: QTBUG-62028 Change-Id: I64ec4f4c9a536e122676d738db58805b98a45c82 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Windows QPA: Do not call enableNonClientDpiScaling() for embedded windowsFriedemann Kleint2017-07-193-2/+8
| | | | | | | | | Do not call if the property indicating embedded windows is set. Task-number: QTBUG-61972 Change-Id: I8f34dd8a59f1e5c9c8064646bcb15acea115cd68 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Windows QPA: Compare against correct geometry when checking for fullscreenFriedemann Kleint2017-07-191-1/+1
| | | | | | | | Do not scale the QPlatformScreen's geometry. Fixes tst_QWidget::showFullScreen() when run with a scale factor. Change-Id: I4a2e743303ff70b01fd3d2086281a790737d2c1d Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Revert "Windows: Fallback to d3d9 when in a VM on VMWare Workstation 12"Andy Shaw2017-07-171-12/+0
| | | | | | | | Revert SHA1 - b1708efeeb31242a4a0d932f42caf3808b00bc28 as it causes a problem with QtMultimedia. Change-Id: I0ba366fa6ddccff3715917f5f455b20c73c2e49e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* macOS: Don't assume the proposed fullscreen size matches the screen sizeTor Arne Vestbø2017-07-171-3/+3
| | | | | | | | | Sometimes AppKit will pass in a proposed size that's smaller than the geometry of the screen. We don't know why, but shouldn't assert. Change-Id: I9970c5f587e1e0fb3f2fa932de5a32ac4e1eb76d Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add missing #include for -no-widgetsStephan Binner2017-07-141-0/+1
| | | | | | Task-number: QTBUG-61780 Change-Id: I62fccc6474965278cb1b258b512fda3b60f995f3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* macOS: Fix unused variable in window:willUseFullScreenContentSize:Tor Arne Vestbø2017-07-121-0/+1
| | | | | | Change-Id: I419f884f4145dbe2b60751bf6cde3968cf34fe4a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Windows QPA: Fix build with draganddrop disabledFriedemann Kleint2017-07-111-1/+3
| | | | | | Task-number: QTBUG-61885 Change-Id: Ibb4a7ac43785dcdb46afcd5c2081e43df7d9e9a5 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Windows: Fallback to d3d9 when in a VM on VMWare Workstation 12Andy Shaw2017-07-111-0/+12
| | | | | | | | | | On VMWare Workstation 12 it will indicate OpenGL 2.1 support but it is not sufficient enough as it is lacking things needed to use QtWebEngine without crashing. Falling back to d3d9 works fine in this case as d3d11 also crashes. Change-Id: I404867045a74f37d3ecc7e04e669dd305570deeb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Convert features.fontdialog to QT_[REQUIRE_]CONFIGStephan Binner2017-07-114-9/+13
| | | | | Change-Id: Iebc091ffd023595278fa177b7f205b6e0cd7ec52 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Fix macOS build for -no-widgets, take 2Stephan Binner2017-07-101-2/+2
| | | | | | Task-number: QTBUG-61780 Change-Id: Ic67074b19b3b5c409c0f1254be77ba122ad61a85 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* QWindowsFileIconEngine::filePixmap(): Handle non-existent filesFriedemann Kleint2017-07-081-6/+12
| | | | | | | | | | | | | | | Pass SHGFI_USEFILEATTRIBUTES/FILE_ATTRIBUTE_NORMAL to ShGetFileInfo() in case a file does not exist to obtain an icon. SHGFI_USEFILEATTRIBUTES cannot be used unconditionally as it breaks custom directory icons. The functionality is then on par with XCB which obtains icons via QMimeDatabase look-up. Task-number: QTBUG-25319 Change-Id: Icd894d97fd8d1a2c4d5d39e86afe89843e6720c4 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* xcb: cleanup gl_integrations_plugin_base.priGatis Paeglis2017-07-071-7/+0
| | | | | | | | | | | | | | | | | | | The original version (8758f532ae6209bcf9447e27edc4fd412c0f173d) of this file was full of things that are irrelevant for XCB GL plugins. Most of this has been cleaned out as side effect of porting to the new configure system. This patch cleans up the remaining pieces. It does not matter for XCB GL plugins if Qt was configured with -qt-xcb or -system-xcb as those are dependencies of xcb_qpa_lib-private and are not used directly by these plugins. The only XCB dependencies that are directly used by these plugins are libxcb-glx and libxcb, which are managed directly in xcb_glx.pro: qtConfig(xcb-glx): QMAKE_USE += xcb_glx Change-Id: I2175185902bb028de142c8ff6e0b0a3b76a09703 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* macOS: Account for fullscreen geometry bug in AppKit on OS X 10.10Tor Arne Vestbø2017-07-071-0/+15
| | | | | | Task-number: QTBUG-61776 Change-Id: Ifac502cf422088eafe9211d759f2f5cd9769d0d3 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* Windows QPA: Further restrict windows for WM_DPICHANGEDFriedemann Kleint2017-07-071-3/+23
| | | | | | | | | | | | | | | | | | | | Exclude popups among other non-applicable windows types from resizing in WM_DPICHANGED. When resizing was enabled for non-fixed size windows by c854fc5a6be1e94d2ea313a1d0ef637bc3df178f it turned out that context menus were truncated when moving an application from a high resolution to a low resolution monitor. Factor out a function to check for the applicable window types. Amends 886ce572d628e7cd98cc39edcc930ffae951e95e, c854fc5a6be1e94d2ea313a1d0ef637bc3df178f. Task-number: QTBUG-55510 Change-Id: I16fee07f3e11828848ec71cdceadff958cedb13a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* [Windows] Update hMonitor handles when a display is turned offAlexandru Croitor2017-07-061-1/+9
| | | | | | | | | | | | | | | In a multi-monitor setup, when the main display is turned off or disconnected, all remaining monitors have their hMonitor handle changed. Qt did not store these updated handles, which led to not posting the WindowScreenChanged event when a window was moved to a different DPI-scaled display, leading to e.g. improperly scaled popup menus. The fix consists in updating the hMonitor handles whenever a new monitor is connected or disconnected. Change-Id: Id2ca2c128510d9ff3e9746eb33e86dce8f6c4c83 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Windows QPA: Take hasBorderInFullScreen into account when checking for ↵Friedemann Kleint2017-07-051-0/+2
| | | | | | | | | | | fullscreen Add a margin to the window geometry. Task-number: QTBUG-61595 Change-Id: I12c557d7cfb1fe954a9845848c0777817c4cbf27 Reviewed-by: Thomas Sondergaard <thomas@sondergaard.cc> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix macOS build for -no-widgetsStephan Binner2017-07-051-1/+3
| | | | | | Task-number: QTBUG-61780 Change-Id: Icb337c4daeb976a6616dc289a5ffd0ec9345834f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* QWinRTFileEngine: Property ItemDate is not the file's last accessThiago Macieira2017-07-051-2/+1
| | | | | | | | | The MSDN documentation says that it's a date that reflects the item type, giving an example the date a photo was taken (probably as stored in the EXIF metadata). Change-Id: I8d96dea9955d4c749b99fffd14cd7616cc0da545 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Windows QPA: Correctly check for fixed sized windows in WM_DPICHANGEDFriedemann Kleint2017-07-031-1/+1
| | | | | | | | | | | | Use Qt's flags instead of WS_DLGFRAME which matches WS_CAPTION as well (WS_BORDER | WS_DLGFRAME). Amends 886ce572d628e7cd98cc39edcc930ffae951e95e. Task-number: QTBUG-58959 Change-Id: Ifdc106667d67cc6f5d3611806aae1035742fb882 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Android: Replace QMutex with QBasicMutex in androidjnimainChristian Strømme2017-07-031-1/+1
| | | | | | | QBasicMutex is sufficient and provides reduced initialization cost. Change-Id: I79ae61daaed4f5edd9b21d913f78e78e7ba14c94 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Android: Add lock to protect access to the platform interfaceChristian Stromme2017-07-035-31/+32
| | | | | | | | | | Fixes dubious lock protecting the platform interface handle, and makes sure that we lock and hold a valid reference to the platform interface before accessing it. Since the platform interface is exposed we also need to expose the mutex protecting it. Change-Id: I1ec1219a75c589bc793676369b11fb403de20102 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* xcb: Use QT_CONFIG macro to check for xcb-sm, xcb-render, and xcb-glxAlexander Volkov2017-07-038-66/+43
| | | | | | | | | | | And remove the corresponding defines. Note that XCB_USE_GLX and XCB_HAS_XCB_GLX were used as synonyms because QGLXBufferSwapComplete was wrapped in #if defined(XCB_USE_GLX) and at the same time it was used only when XCB_HAS_XCB_GLX was defined. Change-Id: I6c04b0ccfd5369b78b3e8af2ec39d38ae5c311dc Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* Cocoa: Reset the target + action for a menuitem after showing a dialogAndy Shaw2017-07-031-1/+17
| | | | | | | | | | | | To make it more reliable and efficient we now do the reverse of what we are doing when redirecting the items. This will ensure that the actions are correctly reset to the original target and action. The original approach of updateMenubarImmediately() was not always doing this and it also does other unnecessary things as a result when all we need is to just reset the things we changed. Change-Id: Icefa38d47ec9434894f05caeed75fbf8bdfecb93 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Convert features.colordialog to QT_[REQUIRE_]CONFIGStephan Binner2017-07-024-8/+11
| | | | | Change-Id: If2ac57a10f38002db5a49be3882dfc507a84a3df Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* xcb: Replace XCB_USE_XINPUT define by QT_CONFIG macroAlexander Volkov2017-06-296-33/+19
| | | | | | | | .. and remove it from qxcbconnection_xi2.cpp as this file is build _only_ when xinput2 is available. Change-Id: I66d6a299c120fc034f8519cd188e1b845d5bd1bc Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* Convert features.filedialog to QT_[REQUIRE_]CONFIGStephan Binner2017-06-295-9/+25
| | | | | Change-Id: I9bc229b0d1430b81eeb2cfca2b24474736d5d561 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Windows code: Add Q_FALLTHROUGH or break to unmarked fallthroughs seen by GCC 7Friedemann Kleint2017-06-282-1/+2
| | | | | | | Rearrange code handling QtWindows::DisplayChangedEvent. Change-Id: If9f32516108fb64c4a252c84392f2fd7f1872bf1 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Convert features.tabletevent to QT_CONFIGStephan Binner2017-06-287-34/+33
| | | | | Change-Id: Ibd7ed7f269a64afddadee70979b20f1c58398378 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Convert features.wheelevent to QT_CONFIGStephan Binner2017-06-281-3/+3
| | | | | Change-Id: I46083a9115c199d1ebe024ed5f64b160a27462f1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* xcb: Use QT_CONFIG macro to check for xcb-xlibAlexander Volkov2017-06-2815-42/+32
| | | | | | | | | | | | | | | | | | | | | | | | ... and remove the XCB_USE_XLIB define. This patch also removes the unnecessary checks for xcb-xlib in: - qxcbglxintegration.cpp as this files is build _only_ when xcb-xlib is present. From gl_integrations.pro: qtConfig(xcb-xlib):qtConfig(opengl):!qtConfig(opengles2) { SUBDIRS += xcb_glx } This also would have been the right place where to define XCB_USE_XLIB, instead of unconditional line in xcb_glx.pro: DEFINES += XCB_USE_GLX XCB_USE_XLIB - qxcbnativeinterface.cpp as this cpp file does not use any Xlib APIs directly, there is no need to include Xlib.h. Change-Id: I531b5f1e79606fcfd1c63810cf51b7d5e9dc58a7 Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* xcb: rename arg in QXcbBackingStore ctorGatis Paeglis2017-06-281-1/+1
| | | | | | | | ... as it is a window, not widget. This matches the name from cpp file: QXcbBackingStore::QXcbBackingStore(QWindow *window). Change-Id: Ib9f69cbe80ea645bbce0e4f5ef24a8df8808b823 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* xcb: Increment iterator inside bgr888 region loopBłażej Szczygieł2017-06-281-1/+1
| | | | | | | Amends 9c1d3bc253abd4418f3050d19ec5f05bef3ada97. Change-Id: I912096794d274617e5b290dfb42685088cd49b23 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* macOS: Send text input and key events to focus object of window, not appTor Arne Vestbø2017-06-261-11/+8
| | | | | | | | | | | | | | | | The key events and input method callbacks coming from Cocoa are targeted at our specific NSView, so we should deliver them to the focus object of the corresponding QWindow, not the global application focus object. This means that we'll deliver key events to windows also when they are not key (active), but this is intentional, as we would otherwise fail to deliver input method events coming from e.g. the emoji/symbol picker, which steals the key window when active. Task-number: QTBUG-61359 Change-Id: I61326c08ad8bbd0c535b3cc8a67d0ceeec7ee910 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>