summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Android: fix inputmethod race conditionsPaul Olav Tvete2014-09-102-63/+62
| | | | | | | | | | | focusObjectInputMethodQuery() and sendInputMethodEvent() were not thread safe. Remove them, and replace with thread safe versions based on the same principle as queryFocusObjectThreadSafe(). Task-number: QTBUG-40995 Change-Id: Idb6f0c6d3963b7e8e73e029e83d0367088146ca8 Reviewed-by: Christian Stromme <christian.stromme@digia.com> Reviewed-by: BogDan Vatra <bogdan@kde.org>
* qpa: Make screen geometry updates (full and available geometry) atomicTor Arne Vestbø2014-09-107-34/+23
| | | | | | | | | | | | | | | | | Updating the geometry and available geometry in two steps means that QScreen will be in an inconsistent state when emitting the geometry change signal, as the available geometry has not been updated yet. Piggy-backing changes to the availableGeometry based on the virtual geometry changing does not make sense, so we now tie geometry and availableGeometry (and their size variants) to their own separate geometryChanged and availableGeometryChanged signals. Change-Id: Iee0ced642cbb91c470cb54bc507d2c0512482c13 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* iOS: Move accessibility/textinput includes in quiview.mmTor Arne Vestbø2014-09-101-4/+5
| | | | | Change-Id: Id982afb06f164bd398a6e642a48a85f277075e74 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* xcb: fix getting a XdndAware property if a proxy window existsAlexander Volkov2014-09-091-1/+1
| | | | | | | | | | | | According to the XDND standard (http://www.newplanetsoftware.com/xdnd/) if the proxy window exists then it should be checked for the XdndAware property rather than the target window directly. c3f9de62966d32d8e33d62eb374fe2657a4cfebe introduced the mistake. In the old code the proxy window was used. Change-Id: I83b66d4b1f08a1f44d5c1451d0f1735c084bcf09 Spotted-by: Alexander Smirnov Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Define EGL_EGLEXT_PROTOTYPES for ANGLEv5.4.0-alpha1Laszlo Agocs2014-09-061-0/+1
| | | | | | | | | Otherwise the protos are not pulled in so the ANGLE-only build cannot suceed (unless the flag is defined from somewhere else). Task-number: QTBUG-41164 Change-Id: I959d154da88f7ccc8159ec7e810ffdba0e7f50ea Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* kms: Move debug output behind a category.Robin Burchell2014-09-052-4/+8
| | | | | Change-Id: I5b2bb8631a33b577afca1a0852abe4cabae1e254 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* xcb: fix coordinates of touch pointsAlexander Volkov2014-09-051-1/+1
| | | | | | | | Fix conversion from FP1616 to qreal. Use 16-bit mask 0xFFFF instead of 8-bit mask 0xFF. Change-Id: I0ee39b2e298b7ff7d7a67981925374d6a18f1474 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Windows: Move dock windows automatically when screen is disconnected.Friedemann Kleint2014-09-051-1/+25
| | | | | | | | | Windows does not automatically move WS_EX_TOOLWINDOW type windows. Task-number: QTBUG-39320 Change-Id: If9804f32beb534a27ba649abf5eaceb686af8f50 Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Avoid deadlock when suspending devicePaul Olav Tvete2014-09-051-2/+8
| | | | | | | | | | | | | Don't wait for the GUI thread when it's already waiting for us. An application that uses the virtual keyboard may get an inputmethod query just when it is being suspended. If the GUI thread is already blocking on a semaphore at that point, waiting for the android thread, we really do not want to wait for the GUI thread... Task-number: QTBUG-40955 Change-Id: Iea2cf0dd058a41a897d596c4bcf16f0508adb20b Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Android: don't recreate surface on shutdownPaul Olav Tvete2014-09-052-0/+5
| | | | | | | | | When we suspend the app, we destroy the surface to save resources. We don't want to create it again just as we are shutting down. Task-number: QTBUG-41072 Change-Id: I7a616249bee869b92716d0911201a80d73c2f8da Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* iOS: Update QIOSScreen::nativeOrientation() for iOS8Tor Arne Vestbø2014-09-041-2/+9
| | | | | | | | For iOS8 and up [UIScreen bounds] changes based on the interface orientation, so we need to use [UIScreen nativeBounds] instead. Change-Id: I3fc12cfa417df26ca94c803e970bc2dc18a94378 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Add KMS hooks for EGLFS pluginLouai Al-Khanji2014-09-042-0/+427
| | | | | Change-Id: Ic703334e52726cdd815cccf152d9d01aa63c803c Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* windows: Fix dynamic opengl buildLaszlo Agocs2014-09-032-6/+6
| | | | | | | Cannot call WGL or EGL functions directly anymore. Change-Id: I0d5c6217679d87a2092c945a9b841dfd7b6c299a Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* Enable QT_ANGLE_PLATFORM selection in dynamic buildsLaszlo Agocs2014-09-031-1/+1
| | | | | Change-Id: I8ebe62ec1e024e8a0a0f9e8aeac6fb81b1095e72 Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* direct2d: Work around ClearType rendering bug in translucent modeAndrew Knight2014-09-037-15/+36
| | | | | | | | | | | | This switches the font rendering to use gray scale antialiasing when in translucent rendering mode. It does so by adding a flags argument to the paint engine, allowing for future expansion in communicating render hints from the device to the engine. Task-number: QTBUG-41002 Change-Id: I0265154716a12060e851b603a109e9c693f5e843 Reviewed-by: Louai Al-Khanji <louai.al-khanji@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* DirectFB: Add QT_DIRECTFB_BLITTER_DEBUGPAINT environment variableAndy Nichols2014-09-032-7/+67
| | | | | | | | | | This environment variable will paint an overlay on each paint command that is using the accelerated blitter path for DirectFB. This is useful when you want to assure that you are taking advantage of the DirectFB blitter. Change-Id: I6e374754825794daf9c1bf40bee2b963e752a8e9 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* eglfs: Fix regression in config selectionLaszlo Agocs2014-09-031-5/+4
| | | | | | | | | | During the introduction of context adoption support the config choosing got broken for context creation, at least for hooks that return a customized format in surfaceFormatFor(). The returned format is the one that needs to be passed to chooseConfig(), not the original. Change-Id: Iae203cbbf7b39c462386611dd3744f048116df13 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Android: Avoid deadlocks on suspendPaul Olav Tvete2014-09-032-9/+14
| | | | | | | | | | | | Get rid of the rendezvous at shutdown: the android thread does not need to wait for the GUI thread. Since the GUI thread frequently does blocking calls to the android thread, this fixes several known and potential deadlocks. Task-number: QTBUG-41072 Change-Id: Ia6fa8da026b1727e7352b22f4df4d72b63b8c847 Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Android: Guard against invalid surfaceIDPaul Olav Tvete2014-09-021-0/+6
| | | | | | | | | | | | | | | | Do not try to resize or destroy invalid surfaces. This caused update problems with all GL apps after suspend, since we would forget the dummy view that we always keep around so we get proper transitions on shutdown. Also make sure that we don't mess this up even if we try to destroy a non-existing surface. This would have fixed the bug by itself, but then we would still be stuck with the annoying warning message. Task-number: QTBUG-41093 Change-Id: I83299e93eb9ac5357b98ca47014789b56c91b35a Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* windows: Allow selection of ANGLE's rendererAndrew Knight2014-09-022-1/+31
| | | | | | | | | | | | The default behavior of ANGLE is to use D3D11 before falling back to D3D9. This change improves flexibility the platform plugin to explicitly create a D3D11, D3D9, or D3D11 software (WARP) context by setting the QT_ANGLE_PLATFORM to "d3d11", "d3d9", or "warp", respectively. Task-number: QTBUG-41031 Change-Id: Ie1d399c1cb0e360e5b3a6d9f2a4b28745d86cc71 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* iOS: Don't store UIViewAnimationOptions value as UIViewAnimationCurveTor Arne Vestbø2014-09-021-2/+2
| | | | | | | | | | We pull out the magic UIViewAnimationCurve of the keyboard animation when the keyboard is about to show, but we need to defer the shifting of the value 16 bits, as that turns it into a UIViewAnimationOptions, which we can't store in a UIViewAnimationCurve member. Change-Id: Id35dae1ec487951df749dfffb6118b572c28b103 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: Get rid of markedTextFormat global static variable in IMETor Arne Vestbø2014-09-021-9/+12
| | | | | | | Preperation for IME refactor. Change-Id: I0832c174d05d019d69ef7c01c45aaedc6e4d9468 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: Add support for QWindow::setOpacity()Tor Arne Vestbø2014-09-022-0/+7
| | | | | Change-Id: I027154aef35d219f08915e195f2baf8595ef7343 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* direct2d: Fix translucent/frameless window renderingAndrew Knight2014-09-014-41/+135
| | | | | | | | | | | | | | | | | | | | When using WA_TranslucentBackground/FramelessWindowHint, the backing store must paint to an offscreen texture instead of the swap chain in order to achieve the desired results. This texture is then presented to the screen using UpdateLayeredWindowIndirect(). As the swap chain is not needed in this mode, its construction is skipped if indirect rendering is active. Furthermore, the layering options were updated to fix an issue with transparent layers overpainting the background. The layer options were switched to D2D1_LAYER_OPTIONS1_NONE, which appears to work for both translucent and non-translucent rendering modes. Task-number: QTBUG-40601 Change-Id: I656f7cdfb424d1eda6f82c2c69500e78d8c1726a Reviewed-by: Louai Al-Khanji <louai.al-khanji@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* winrt: Fix mouse coordinates on high-DPI displaysAndrew Knight2014-09-011-3/+5
| | | | | | | The scale factor was only being applied to touch coordinates. Change-Id: I7fc2793b1514c73986a574a95478306c1eb54c5e Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* Fix no-opengl buildLaszlo Agocs2014-09-011-1/+1
| | | | | | Change-Id: I577bd5d10e52571c95c9e646327264cf95ac6eb1 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Prevent current context from becoming inconsistent upon create()Laszlo Agocs2014-09-013-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | Platform plugins have a tendency to make the newly created native context current with a temporary surface. This is usually needed to query some information related to the new context. Afterwards most of them just reset to having nothing current. This has two issues: It unexpectedly changes the current context/surface. A call into QOpenGLContext::create() does not imply that the current context will get changed. This is the minor issue and we could probably live with it (at least if it had been documented). However, the real issue is that QOpenGLContext::currentContext() will become inconsistent: it will still report whatever was current before the create() even though on the EGL/WGL/GLX level that's not the case anymore. To prevent all this confusion the platform plugins can easily be changed to restore whatever context/surface was current before they altered it. Change-Id: I6a5b4597c86571327524ddb13e0d02538593cc7b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* iOS: Initialize QScreen properties before setting up root viewcontrollerTor Arne Vestbø2014-09-011-19/+19
| | | | | Change-Id: I5fd899030b0557e9b0d96f2c065c8be5cfadd5de Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Windows QPA plugin: Streamline code to find window at a position.Friedemann Kleint2014-09-016-49/+10
| | | | | | | Task-number: QTBUG-40815 Change-Id: I0efcc2cfcafdee04bda20afa88a7f6aaabd57210 Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Remove superfluous "break" in QWindowsNativeFileDialogBase::setLabelText()Maks Naumov2014-09-011-1/+0
| | | | | Change-Id: I889dfa00daf60e393e3d95ee2d0ecb73f7871e4c Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix memset() for "alphaValues" in supportsSubPixelPositions()Maks Naumov2014-08-311-1/+1
| | | | | | | Fix reversed memset arguments. Change-Id: I1601fecb24068fa601e919a9fd8bb1e991ef70ec Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* IBus Input Method: Check in commit whether we need to commitDaniel Teske2014-08-311-3/+5
| | | | | | Task-number: QTBUG-40755 Change-Id: I283d48cc6d4390a02d0df63ac6e38fa5f73a0ec0 Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
* Windows: Fix QPlatformCursor::pos()/setPos() for DPR scaling.Friedemann Kleint2014-08-292-2/+9
| | | | | | Task-number: QTBUG-38858 Change-Id: Ibb0355ae19a382e4eb3805fe6d6afab2a2a603e6 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* Windows: Detect Surface Pro 2 tablets.Friedemann Kleint2014-08-281-0/+2
| | | | | | Task-number: QTBUG-39571 Change-Id: I9cb7fe2dee9a0701912ea639cdcc66a198e5b65c Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Windows: Prevent hidden transient children from being re-shown by Windows.Friedemann Kleint2014-08-282-3/+12
| | | | | | | | | Bring back code from Qt 4 to handle WM_SHOWWINDOW / SW_PARENTOPENING correctly. Task-number: QTBUG-40696 Change-Id: If018bf90573f495dbe32d0c46f522ccde0691ebb Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* QWindowsNativeInterface: don't allocate memory just to compare stringsMarc Mutz2014-08-281-3/+3
| | | | | Change-Id: I691d2629a78aaaee3d1741b9ab4c55b16c95bde9 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* iOS: Use dispatch_async instead of performSelectorOnMainThread for IMETor Arne Vestbø2014-08-261-10/+12
| | | | | | | | Gets rid of awkward wrapping of Qt::InputMethodQueries as integer in a NSObject. Change-Id: Ia7e368fc12ec7957ca8ab602d8cec1e0a071af1d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: Add UIResponder helper to get current first responderTor Arne Vestbø2014-08-262-0/+29
| | | | | Change-Id: I422d45860a52861893d963fabbecd4ac30477272 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Accessibility iOS: Fix crash after deleting a viewFrederik Gladhorn2014-08-262-3/+6
| | | | | Change-Id: I64e8357fcbf7f312308490351b7c692d31db5a43 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Add devicePixelRatio support to the Windows QPA plugin.Friedemann Kleint2014-08-2517-120/+420
| | | | | | | | | | | This adds support for the environment variable QT_DEVICE_PIXEL_RATIO for the Windows platform plugin. Task-number: QTBUG-38993 Task-number: QTBUG-38858 Change-Id: I6831eb6d3a09a80be7bbef46395e91531b61cc50 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Avoid crash if querying device that has gone awayAllan Sandfeld Jensen2014-08-251-2/+4
| | | | | | | | | | | A device removed very fast after being inserted might disappear while we are still seting it up. We must therefore check if we indeed still get a matching device Task-number: QTBUG-40820 Change-Id: I4372fb1932264e5799f37cea0d016795e28ebed6 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Support QOpenGLWidget and QQuickWidget on AndroidLaszlo Agocs2014-08-259-171/+72
| | | | | | | | | | | | | | | | | | | | | | | | It gets somewhat complicated due to the fact that a RasterGLSurface window (i.e. any widget window since 5.3) may behave either like an OpenGLSurface or a RasterSurface, and the expected behavior may change on each backingstore sync. This does not fit designs where the platform window implementation is separated and there is different behavior for raster and GL windows. Therefore QAndroidPlatformOpenGLWindow is now made capable of behaving like the raster one, based on a flag communicated from the widget stack via QWindowPrivate (since the plugin knows nothing about widgets). This means that widget windows that do not have renderToTexture children (QOpenGLWidget, QQuickWidget) will go through the raster path, while the ones that have will behave like an OpenGL window with the actual rendering happening in QPlatformBackingStore::composeAndFlush(). The surface type is RasterGLSurface in both cases nonetheless. Task-number: QTBUG-37907 Change-Id: I6f9261fc0fd993afcda7f30d379c5410069033d3 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* OS X QColorDialog: emit reject() when closed by the titlebar buttonShawn Rutledge2014-08-251-0/+19
| | | | | | | | | | but only if there is a Cancel button. A color dialog without a cancel button might be kept open and apply to various selections, so it doesn't make sense to reject such a dialog, only to close it. Task-number: QTBUG-40855 Change-Id: Ifffb4ae81307c72259ed388a4776ba09543603e7 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* DirectFB Fix issue with showing dialogsAndy Nichols2014-08-251-15/+3
| | | | | | | | If the window was not visible when the geometry was set, then the DirectFB window would not be resized. Change-Id: I7790c90ed0fb755aebee0e32c877ebd9e48417cd Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* DirectFB Unbreak mouse input for child windowsAndy Nichols2014-08-252-13/+3
| | | | | | | | The local and global coordinates for mouse events were being translated incorrectly from the native DirectFB events. Change-Id: Id904a4335459b87c92f4b8b46d535c78fb7dad8c Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* DirectFB Make usable again with QWidgetAndy Nichols2014-08-251-36/+52
| | | | | | | | | | | Previously when we created any QWidget based application a QDesktopWidget would be created as a physical window like any other, but this window would steal input from the application. We now create a DirectFB window for the Qt::Desktop type of widget now, but it does not receive input events and can not be painted to or displayed. Change-Id: I6a090c5384b1f83383e40680dbede5d0edc41983 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* DirectFB Provide a native interfaceAndy Nichols2014-08-252-2/+8
| | | | | | | | Using the same multiple inheiritance that is used in the EGLFS platform plugin. Change-Id: I016f904bfc365bec6266c3f5d638ab15ecefe63b Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* DirectFB Add QGenericUnixServices and inputContextAndy Nichols2014-08-252-0/+14
| | | | | | | | The DirectFB platform plugin was missing support for services and inputContext. Change-Id: I010fdcbed5e172b019b4dce79f3beea0f9c5025d Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* OS X: Fix pan gestures.Morten Johan Sørvig2014-08-251-4/+11
| | | | | | | | | | | | | | | | | | The QPanGesture recognizer requires single-point touch events. The touch implementation in Qt 4 would test Qt::WA_TouchPadAcceptSingleTouchEvents and forward single touch events if set. Making this work in Qt 5 is a little bit more involved since the platform plugins don't know about widgets. Change the Cocoa touch implementation to send single-point touch events to QWidgetWindow windows only. Make QApplication forward single-point touch events only if the target widget has the Qt::WA_TouchPadAcceptSingleTouchEvents attribute set. Task-number: QTBUG-35893 Change-Id: I68712a5e3efb4ece7a81ca42f49c412e525eeb3a Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* standardize QPA input event logging category hierarchyShawn Rutledge2014-08-243-24/+19
| | | | | | | | | | | If qtlogging.ini contains a rule qt.qpa.input*=true then all available input event logging will be enabled on any platform. There are more specific categories for touch, tablet, gestures, input methods etc. on some platforms. Change-Id: I8754ce23df8f0b750a4b7dfcf3afe5bab800ead8 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>