summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* iOS: Implement basic QPlatformOffscreenSurface subclassTor Arne Vestbø2015-03-251-1/+15
| | | | | | | | | | | Offscreen surface support was added in fb3577039ca8, as the platform supports FBOs, but we need to return a subclass of QPlatformOffscreenSurface that returns true for isValid() and a valid surfaceFormat(). Task-number: QTBUG-39759 Change-Id: If6aa9ee1672984bb93a01a5323af8d93b3b0f2b8 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Resize backingstore properly on devicePixelRatio changesPaul Olav Tvete2015-03-251-6/+17
| | | | | | | | Task-number: QTBUG-45076 Change-Id: Ib2f2408abf7bd0b6d1c8a05fbbdc665e77ea6392 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Proper geometry conversion for devicePixelRatio > 1Paul Olav Tvete2015-03-251-1/+6
| | | | | | | | | | | | Rounding the bottom right corner position means that the size can change when the window moves. For windows we need to round the size up in order to have a stable geometry. Task-number: QTBUG-45076 Change-Id: I9a85a5915bfec55b0a7295be137b6fbfd7b53095 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Don't replay mouse press event which closes a popup on X11Alexander Volkov2015-03-251-0/+2
| | | | | | | | | | | Add a new style hint to QPlatformIntegration: ReplayMousePressOutsidePopup. Return false for it in the xcb plugin. This commit restores the behavior which was in Qt 4. Task-number: QTBUG-34814 Change-Id: I19fee762395a51475cc67b52b368c70679ca736b Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* OS X Accessibility: Make checkboxes etc. checkable with VoiceOverBoris Dušek2015-03-253-6/+10
| | | | | | | | | | | | NSAccessibility has no explicit analog for QAccessibleActionInterface::toggleAction(), checking checkboxes/radio buttons is handled by NSAccessibilityPressAction. So ensure exposing the action properly on OS X so that VoiceOver users can check/uncheck checkboxes, select radio buttons etc. Change-Id: Idc8b048de2313a3e875a929516baf3dded9c68cc Task-number: QTBUG-44852 Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* eglfs: Unblank on startupLaszlo Agocs2015-03-231-0/+4
| | | | | | | Like linuxfb does. Change-Id: Icba224d710f241d9246450c7d112ce181b992d0e Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* eglfs: Disable the blinking cursorLaszlo Agocs2015-03-231-7/+0
| | | | | | | | Make eglfs and linuxfb use the same code via QFbVtHandler. Task-number: QTBUG-45106 Change-Id: I876bbf5f13bab6d4a81f616c01f15f9c98edf5fc Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Android: Early spring QPA cleanupBogDan Vatra2015-03-232-13/+5
| | | | | | | | | | - Move m_eglDisplay to private section - needsBasicRenderloopWorkaround is needed only locally so, make it a static function - remove unused member variables. Change-Id: I3e845301ec66a322621c7d9e6fac257320a40f77 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* Cocoa: Don't let key events triggering input method events close dialog.Christoph Schleifenbaum2015-03-213-0/+11
| | | | | | | | | | | Added a flag to QCocoaWindow to ignore shouldCloseWindow. This is set from within QNSView when escape is pressed and the current focus widgets is processing input method events (like QTextEdit). This lead to unwanted dialog rejects. Task-number: QTBUG-44076 Change-Id: Ic90a8a6ba8c5cddbc0d486563acad57dd384d179 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* [QWindowsFontDatabase] Move code around to improve readabilityKonstantin Ritt2015-03-201-44/+30
| | | | | | | | Keep DirectWrite initialization code in a single place and fallback to GDI implementation if DirectWrite initialization has failed. Change-Id: I2da185dbc073c58a7ba47bae09957ecac877d712 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Simplify QWindowsFontDatabase::createEngine()Konstantin Ritt2015-03-203-15/+12
| | | | | | | Reduce code duplication and improve readability. Change-Id: Idf53c80077daa9bac03a72acfd2b6c7e3a24ad97 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* An attempt to fix font stretching with DirectFrite font engineKonstantin Ritt2015-03-201-17/+15
| | | | | | | | | Do the `lf.lfWidth = tm.tmAveCharWidth * request.stretch / 100` trick for the DirectWrite path, too. Task-number: QTBUG-22652 Change-Id: I5238bce1033555a4386cb48fed8c898a9632e0cd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Only get font metrics if we're going to use themKonstantin Ritt2015-03-201-26/+20
| | | | | Change-Id: If6b635e54f705c1e28b4e092a318d825a408ccfb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Do not re-create font if it is not of TMPF_TRUETYPEKonstantin Ritt2015-03-201-3/+1
| | | | | | | | | | | | | | | | For !ttf and stretch==100 case, it was: hfont = CreateFontIndirect(&lf); TEXTMETRIC tm = ..; if (!ttf) { DeleteObject(hfont); lf.lfWidth = tm.tmAveCharWidth; hfont = CreateFontIndirect(&lf); } Unless there is some special behavior for non-TrueType fonts I don't know about, it looks to me like a 100% waste. Change-Id: I864340e50591ba1d8006d1a80f36f6f06f2734b6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Android: Use nullptr instead of Q_NULLPTRBogDan Vatra2015-03-202-38/+38
| | | | | | | | | | | Android QPA is built only for Android using Android toolchains which we know for sure that it supports C++11/14. Actually C++11 is enabled by default on Android, so there is no need to use more a macro instead of the real thing. Change-Id: I14a720f08320b2e4557f4f1c859454ced19340a6 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com> Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Proper screen change handling for devicePixelRatioPaul Olav Tvete2015-03-201-2/+17
| | | | | | | | | We need to make sure that we know which screen we are on, and use the correct devicePixelRatio, depending on the screen. Task-number: QTBUG-45076 Change-Id: Ic56ad4ca8a807d584ce4938b64905ce4dd10f7aa Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* Windows: Activate popup when there is no active window.Friedemann Kleint2015-03-201-5/+8
| | | | | | | | | | | | Port af7d2b2127dadbdf828c60c75255bb1b4f591651 and 9ffdfa58b3ad2ed4100a7d223a85399b72c6deb7 for QTBUG-7386 from Qt 4. Task-number: QTBUG-44928 Task-number: QTBUG-7386 Change-Id: I119b75349ff30b19f56ecad7fdecf898ac0797d6 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Windows: Fix touch registration.Friedemann Kleint2015-03-201-1/+1
| | | | | | | | | | | IsTouchWindow() returns false for windows that have not yet been registered for touch and the code bailed out. Fix the check so that registration is only suppressed when the flags match. Change-Id: Ia1e88553d2fd8f9acc4e3b9c5f4af6cdbe93b3f6 Task-number: QTBUG-45134 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Fixed compilation on Mac OS X (qt namespace and preprocessor issues))Sergei Kulik2015-03-2015-8/+55
| | | | | | | | Configured with -qtnamespace <...> -no-opengl -D QT_NO_PRINTER Change-Id: I1c959a89afda08d29a854f21e6e51732d136753c Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
* iOS: Base size of menu picker toolbar on the picker size itselfTor Arne Vestbø2015-03-191-1/+2
| | | | | | | This fixes the tiny font in the UIToolbar above the UIPickerView. Change-Id: Idc6681cd5b527c15cf5331d04ff3785304146b56 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
* Do not build glx integration with -no-openglLaszlo Agocs2015-03-181-1/+1
| | | | | | Task-number: QTBUG-44998 Change-Id: I57c18cd3621a59297d3f91026903628ea6187a5f Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* iOS: only use image picker dialog as native dialog for loading filesRichard Moe Gustavsen2015-03-181-1/+3
| | | | | | | | | The user cannot use the image picker dialog for selecting file names for saving. So ensure we fall back to use the normal file dialog when that is the case. Change-Id: Ic73571d34d87c47c68b75dfe0bad1810ad91aa57 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* EGLFS: Make Mali GPU backend more genericAndy Nichols2015-03-182-1/+6
| | | | | | | | | | | | | This provides both build and runtime fixes to make the Mali GPU backend able to be used in more places. The Mali backend was always trying to resize the frambuffer driver to twice the default height. In the case of the Mali T628 in the ODROID XU3 it is an error to set the virtual height of the framebuffer device to anything greater than the physical height. Change-Id: I25a64e411f44d2aeb1cb4376183d9ea547c10161 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* iOS: Leave it up to QIOSTextInputResponder to decide when to reconfigureTor Arne Vestbø2015-03-183-32/+70
| | | | | | | | | We need to store the IM state as part of the QIOSTextInputResponder, so that the text responder can decide at a later point if it can still be the text responder for the current (possibly changed) focus object. Change-Id: I4ec861c5479238edf6a0fc101fa8241958af2d32 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
* xcb: create a screen if dimensions are known but outputs are notShawn Rutledge2015-03-171-5/+21
| | | | | | | | | | | | | | | | | | | This partially reverts 51ada7734ad780178ecced11e0dff454dfc2e5f2 because it's necessary to keep some scenarios with vnc and remote X servers working. When an application is starting, if we don't find the xrandr outputs but we know the dimensions of the screen, we should still be able to put windows onto that screen; but when we already had known xrandr outputs and then they were removed, that's the case where we want to stop rendering (and have no screen instances) until the screen(s) are reattached. Task-number: QTBUG-31389 Task-number: QTBUG-40174 Task-number: QTBUG-42985 Change-Id: I13d0996ba6ece78c4ebcd2c3a59f1617c1c7f0fa Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* QCocoaDrag: Fix text, url and image preview pixmap while dragging.Filipe Azevedo2015-03-172-6/+52
| | | | | | | | | | OSX was missing text, url and image preview while dragging causing the drag operation to show a small dashed box around the mouse cursor. Task-number: QTBUG-33824 Change-Id: I8d0acd0d6a48b7cb29ad2faba8b9ecb9cdf2a5ab Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* iOS: stop listening for keyboard visibility after QIOSMenu::dismiss()Richard Moe Gustavsen2015-03-161-3/+3
| | | | | | | | | | | | | | | | We used to stop listening for keyboard visibility when quipickerview was deallocated. The problem with that approach is that we don't have a guarantee for when dealloc gets called. So what can happen is that we get a call from Qt to dismiss the menu. That causes us to close the keyboard, which will trigger the notification, which will call dismiss recursively. This will hit our assert checking if we have a valid picker view. This patch will unsubscribe to the notification explicitly upon a call to dismiss, to avoid recursive dismiss calls. Change-Id: If1efa3438037e00a02bc186fdcb6c0b3d3d595e4 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* QCocoaMenuItem: Fixed Delete key symbol in native menubarFilipe Azevedo2015-03-161-0/+3
| | | | | | | Task-number: QTBUG-33015 Change-Id: I4548cef7a10f792bba2d50b74787b0757d5015f7 Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* QCocoaWindow.mm: Avoid crash whe using native windowsFilipe Azevedo2015-03-161-3/+6
| | | | | | | | When using native windows, notification were received after the platform window pointer was cleaned up, which caused crashes. Change-Id: I438fc29d1761a32a4705c4c802afe46908505756 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* iOS: Clarify implementation of QIOSWindow::isExposed()Tor Arne Vestbø2015-03-161-0/+19
| | | | | | | | | | | We treat windows as exposed even if the application state is still inactive (e.g. during startup), otherwise there's a visible moment of black screen between the launch screen fading out and the app rendering its first pixel. Change-Id: I48368459a8a46fa1c5b2853ea88adfe1ac61b6f7 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* iOS: Check if window was active on setVisible(false) through native APIsTor Arne Vestbø2015-03-163-1/+19
| | | | | | | | | | | | | When a QWindow is closed and destroyed it resets QGuiApp::focus_window before calling setVisible(false) on the platform window, so we don't have the needed information anymore to check if the window we are hiding was the focus-window. To work around this we use the native state instead, which should still be valid if the window was the focus window. Change-Id: I98057e6393411471f03668e3e5ce544f6b49c01d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Support grabWindow() in linuxfbLaszlo Agocs2015-03-162-1/+30
| | | | | | Task-number: QTBUG-44465 Change-Id: Id4b0fcbcce3e005c1f147fa227ef987daac20fd5 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* iOS: Add platform plugin option to debug window managementTor Arne Vestbø2015-03-164-0/+82
| | | | | | | | | | | | When the 'debugWindowManagement' option is enabled, e.g. by passing the argument -platform ios:debugWindowManagement to the application, the plugin will add a background color and outline to all QUIViews, as well as draw a grid for the underlying QUIViewController. This makes it easier to see where windows are placed when the window itself doesn't draw anything, e.g. in unit tests. Change-Id: If9a59822e0b320b154ad8e338f9fb5ec7cf191a2 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
* iOS: convert directory in qiosfiledialog to local file before checking filenameRichard Moe Gustavsen2015-03-151-1/+2
| | | | | | | | The directory URL will now have the scheme "file". So we need to convert it to a local file before we inspect the file name Change-Id: Ib50f879501f560a4d0fec41dce6d7d9f78f06a3c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* iOS: return file urls rather than asset urls from file dialogRichard Moe Gustavsen2015-03-152-8/+19
| | | | | | | | | | | | We need to pass the asset url around as a file url in the application, so that QUrl::fromLocalFile()/toLocalFile() works. Note that QUrl::fromLocalFile() will remove double slashes. We therefore need to check for this, and restore missing slashes, when loading files in the file engine. Change-Id: I2de6b91d7a112354590cf2981f7b403eacf92a59 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* eglfs: Report the QScreen refresh rate from eglfsLaszlo Agocs2015-03-146-0/+21
| | | | | | | | | | | | For KMS we can always know the correct rate so report it from the backend's custom screen implementation. For the rest, query from the framebuffer. If the fb driver publishes the timings then we can calculate the vertical refresh rate from them. If not, default to 60. Task-number: QTBUG-44971 Change-Id: I854a34e7c0d652790cc2ac967715828ec76f5733 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Introduce src/3rdparty/freetype.pri for better maintenanceKonstantin Ritt2015-03-141-60/+2
| | | | | | | | This deduplicates qmake rules in platformsupport and platform plugins. Change-Id: Ie9c7d933c4433b96bf502e9753a12faa238b4569 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Windows: Introduce delayed population to the FreeType font database.Friedemann Kleint2015-03-122-64/+148
| | | | | | | | | | | | | | | | | Further Split apart Windows CE/Windows code paths to provide 2 implementations of populateFontDatabase(): - The desktop version uses a callback which only registers the font families using QPlatformFontDatabase::registerFontFamily() to be populated on demand later by populateFamily(). - The Windows CE version is unchanged. Task-number: QTBUG-43774 Task-number: QTBUG-44647 Change-Id: Iad4ec849006a4daf86a5caea9afc89e83ccc7c63 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* xcb: Add support for obtaining default xcb connectionJan Kundrát2015-03-122-0/+10
| | | | | | | This is needed by qtx11extras now that we can meet a nullptr QScreen. Change-Id: I755523cbbbbe188f454bd518d2d86a981542458f Reviewed-by: Richard J. Moore <rich@kde.org>
* eglfs: don't build the cursor atlas when QT_NO_CURSOR is definedAndrew Knight2015-03-122-1/+3
| | | | | | Change-Id: I675bc127296c016a40ec2edfdb6602908fec4c2f Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com> Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
* Clear backingstore for windows with alpha channel.Morten Johan Sørvig2015-03-122-0/+13
| | | | | | | | | Fixes painting artifacts in translucent windows. Change-Id: I89c198e5636c5387e67ad8839d32dffdc0a149cb Task-number: QTBUG-43017 Reviewed-by: Gunnar Sletta <gunnar@sletta.org> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Fix bunch of other segfaults due to null screensJan Kundrát2015-03-121-12/+35
| | | | | | | | | | | | | | | | | | | | | | | This was motivated by a real segfault: #0 QScreen::handle (this=0x0) at qtgui-5.5.9999/work/qtgui-5.5.9999/src/gui/kernel/qscreen.cpp:112 #1 0x00007faaf5d5e85e in QXcbNativeInterface::connectionForWindow (this=this@entry=0x7fab04d684f0, window=window@entry=0x0) at qtgui-5.5.9999/src/plugins/platforms/xcb/qxcbnativeinterface.cpp:483 #2 0x00007faaf5d5fa53 in QXcbNativeInterface::nativeResourceForWindow (this=this@entry=0x7fab04d684f0, resourceString=..., window=window@entry=0x0) at qtgui-5.5.9999/work/qtgui-5.5.9999/src/plugins/platforms/xcb/qxcbnativeinterface.cpp:304 #3 0x00007fab048b8b57 in QX11Info::connection () at /var/tmp/portage/dev-qt/qtx11extras-5.5.9999/work/qtx11extras-5.5.9999/src/x11extras/qx11info_x11.cpp:358 #4 0x00007fab02ce14c6 in NETEventFilter::nativeEventFilter (this=0x7fab04ea5e70, ev=0x7faaec003a60) at kwindowsystem-5.7.0/work/kwindowsystem-5.7.0/src/kwindowsystem_x11.cpp:229 ...at which point I tried to stop playing the get-backtrace-patch-rebuild-repeat cycle and looked at the stuff which looked fishy to my untrained eye. So this is speculative in nature, but I think that each of these cases can be hit and dereference a nullptr. Change-Id: I046debaa1b49fa55e876247fc62f3eb924496fe8 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Get CoreText style name when resolving Qt fontGabriel de Dietrich2015-03-121-11/+4
| | | | | | | | | | | | | Since we use CoreText API to populate the font DB, we should also make sure we use consistent data when doing queries. This partially reverts and ameds b619c35d8507eee. Change-Id: I6a3470fbee719ae1ea3085c252a4870040b9af1a Task-number: QTBUG-41487 Reviewed-by: Liang Qi <liang.qi@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* iOS: ensure keyboard is visible, even when IM hints hasn't changedRichard Moe Gustavsen2015-03-121-17/+16
| | | | | | | | | | | | | | | | | | | | | | | | When showing a QWindow, we transfer first responder status to its QUIView. If another QWindow was active with a text responder at that point, the text responder will loose first responder status in favor of the new view, and the keyboard will hide. Now, if the new window has a focus object with the same IM state as the previous focus object (in the previous window), m_imeState will not change, and QIOSIntegration::update() will assume that nothing needs to be done to show the keyboard, even if it's actually hidden. This patch will change the logic, so that we: - show the keyboard if its supposed to be visible, even if m_imeState did not change. - Only recreate the text responder if it needs a different configuration than the one we already got (not only from changes to Qt::ImEnabled) Task-number: QTBUG-40695 Change-Id: I6f6788af4cbff5c7abe4f5a29e23a7cefea6b711 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* iOS: Prepare QIOSIntegration for handling plugin optionsTor Arne Vestbø2015-03-122-13/+23
| | | | | | | | | | QGuiApplication sets options passed to the plugin through -platform as properties on the QPlatformNativeInterface. To handle those we need to inherit QPlatformNativeInterface first (which is the QObject subclass), and include the Q_OBJECT macro. Change-Id: Ia496851c64cbb0036c26e7ed0683d0ecfa8319cc Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
* Cocoa: Correct mouse event forwarding for popupsMorten Johan Sørvig2015-03-125-20/+82
| | | | | | | | | | | | | | | | | | | | We need to track the active popup globally, having parent windows track child popups is not sufficient since there may be one or more intermediate windows in between the event receiving window and popup window. Add API to QOCocoaIntegration for tracking the global popup window and use it instead of the per-window tracking. Make sure to only close popups on clicks outside the popup only. Add code to QNSView::handleMouseEvent that redirects mouse events to the active popup. Add manual test. Change-Id: Ia3e3fd42d8fddf5c69f0c6879b333ca544521f61 Task-number: QTBUG-43464 Task-number: QTBUG-31937 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* Fix segfault when requesting root window and there are no screensJan Kundrát2015-03-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | This was easy to hit with KDE Plasma 5.2.1; KWindowSystem called QX11Info::appRootWindow() which in turn tried to dereference a nullptr returned from QXcbConnection::primaryScreen(). #0 QXcbConnection::rootWindow (this=<optimized out>) at qtgui-5.5.9999/src/plugins/platforms/xcb/qxcbconnection.cpp:1303 #1 0x00007fc26da096d7 in QXcbNativeInterface::rootWindow (this=this@entry=0x7fc27d1734d0) at qtgui-5.5.9999/work/qtgui-5.5.9999/src/plugins/platforms/xcb/qxcbnativeinterface.cpp:425 #2 0x00007fc26da0ab21 in QXcbNativeInterface::nativeResourceForIntegration (this=0x7fc27d1734d0, resourceString=...) at qtgui-5.5.9999/work/qtgui-5.5.9999/src/plugins/platforms/xcb/qxcbnativeinterface.cpp:223 #3 0x00007fc27c563148 in QX11Info::appRootWindow (screen=screen@entry=-1) at qtx11extras-5.5.9999/work/qtx11extras-5.5.9999/src/x11extras/qx11info_x11.cpp:158 #4 0x00007fc27a98c444 in NETEventFilter::nativeEventFilter (this=0x7fc27d425b60, ev=0x7fc264004ad0) at kwindowsystem-5.7.0/work/kwindowsystem-5.7.0/src/kwindowsystem_x11.cpp:192 #5 0x00007fc2795d0a8a in QAbstractEventDispatcher::filterNativeEvent (this=<optimized out>, eventType=..., message=message@entry=0x7fc264004ad0, result=result@entry=0x7ffc96ecf348) at qtcore-5.5.9999/work/qtcore-5.5.9999/src/corelib/kernel/qabstracteventdispatcher.cpp:460 #6 0x00007fc26d9ea941 in QXcbConnection::handleXcbEvent (this=this@entry=0x7fc27d173580, event=event@entry=0x7fc264004ad0) at qtgui-5.5.9999/src/plugins/platforms/xcb/qxcbconnection.cpp:971 Change-Id: I98a5d767cd7e143f00666f6fc78e9dc10893513d Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* eglfs_kms: Use a QByteArray for connectorNameAndrew Knight2015-03-121-10/+11
| | | | | | | | | Using a byte array here simplifies the logic while being more efficient. It also removes warnings about using deprecated QString methods. Change-Id: Ia1384dfb92e953c56179647b92a41b59cd26d9ea Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* windows: Introduce a built-in GPU blacklistLaszlo Agocs2015-03-116-35/+73
| | | | | | | | | | | | | | | | | | | | | | | Use a built-in JSON file in case the QT_OPENGL_BUGLIST environment variable is not set. When QT_OPENGL_BUGLIST is set, the built-in list is ignored. To make the implementation simpler and more readable, some of the code in QWindowsOpenGLTester is reshuffled a bit. It also caches the results now, so it is safe and fast to call supportedRenderers() and friends multiple times. The blacklist currently contains the Intel card from QTBUG-43263 (Intel GMA / HD3000 ?) and may also apply to QTBUG-42240. [ChangeLog][QtGui] Qt now contains a built-in GPU driver blacklist for Windows that disables the usage of desktop OpenGL with some older cards that are known to be unstable with opengl32.dll. Task-number: QTBUG-42240 Task-number: QTBUG-43263 Change-Id: I1ecd65b51fca77925317d52048e7ab01d9b8797c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* QShortCut: Check whether the menu is QPA-disabledGabriel de Dietrich2015-03-112-0/+6
| | | | | | | | | | | | When climbing the menu hierarchy, it's sounder to check whether the actual QPA menu is enabled. This way we can trigger modifier-less shortcuts even in submenus. Task-number: QTBUG-38256 Task-number: QTBUG-42584 Change-Id: I13a27027306bce0f0732b05bf9469f3b77028f73 Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>