summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use timeout error for TCP timeouts on unixSven Erdem2018-11-111-5/+9
| | | | | | | | | | | | When a TCP connection timed out a QAbstractSocket::NetworkError was set. To enable a more precise error handling for timeouts QAbstractSocket::SocketTimeoutError is now set instead. Separated ETIMEDOUT from other errors in nativeRead() and take over responsibility for setting the error, which was previously handled by read(). Change-Id: Iccd45bdbb3d944cd160ae50c257d3256e05b1ae5 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: David Faure <david.faure@kdab.com>
* QWidgetBackingStore: Don't flush foreign windowsMorten Johan Sørvig2018-11-111-0/+7
| | | | | | | | | Foreign windows do not have Qt backingstore content, and are also not capable of accepting Qt content. Change-Id: I959c7cdc32e6f4322497e132a436ce7d610a4106 Fixes: QTBUG-71183 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* wasm: skip examples by defaultMorten Johan Sørvig2018-11-112-1/+3
| | | | | | | | | | | | This removes the need for specifying "-nomake examples" on the configure line. We are using static builds; building all of the examples is too space and time consuming (especially time). Change-Id: Iff23239ca7304b1d1cf734c8bf69ad3f8ef31844 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* macOS: Make QScreen::grabWindow() work againMorten Johan Sørvig2018-11-111-2/+2
| | | | | | | | | Commit 17b73b0d2b8 introduced a regression where the grab rect position was added to the size when bounding to the display size. This is incorrect. Change-Id: I11d7ba7f53b96badfdead190ef9ddb525ed4ba99 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* macOS: set dpr on pixmap returned by grabWindow()Morten Johan Sørvig2018-11-111-0/+1
| | | | | | | | This matches the behavior of QScreen::grabWindow(), and gives the caller direct access to the scale factor. Change-Id: Ia3ed165a62eaa0f386f8b508ea6b1128ba6be604 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Make grabWindow return pixmap with correct dprMorten Johan Sørvig2018-11-111-1/+1
| | | | | | | | | | | The devicePixelRatio on the returned pixmap should be the product of the Qt and platform scale factors. This handles the corner case of setting QT_SCALE_FACTOR on macOS with a high-dpi display. Change-Id: I3600165d47c03c4e043bcc5e375932cc3fc0c544 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add Windows Desktop arm64 target to QtbaseThomas Miller2018-11-117-21/+162
| | | | | | | | | Allows a qt build to be configured to target arm64 desktop apps cross platform and build them with nmake. Change-Id: I99fed12047b45a504a1644201bcc19b18c69f3e6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Windows QPA: Extend the debug operator for IShellItemFriedemann Kleint2018-11-111-1/+6
| | | | | | | | Output URL string and file system name, too. Task-number: QTBUG-67932 Change-Id: Ic5d1927d70d98f7c081bee06af85b9f3a2a09812 Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
* QtGui: Check event type in QWindowSystemInterface::handleMouseEvent()Friedemann Kleint2018-11-091-0/+3
| | | | | | | | | | Assert on receiving double clicks which are currently not implemented. Task-number: QTBUG-71263 Task-number: QTBUG-70999 Change-Id: I85cd21665ecaf118584053de63745044728d8f5b Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Revert "Revert "qmake: Work around MSVC compiler bug.""Oliver Wolff2018-11-091-0/+14
| | | | | | | | | | | The assert still happens on MSVC 2015 64 bit when running qmake -tp vc -r. This reverts commit f4169a633b97b7b6e7365172cf3d38d2f16a8914. Fixes: QTBUG-71228 Change-Id: I05bd3e0677414edb970f07e0555cdc95ce32f592 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* moc: Modernize generated code a bit, use autoKevin Funk2018-11-091-6/+6
| | | | | | | | | | | | | | | | | | Makes clang-tidy not trip over generated code while running the modernize-use-auto checker. In theory clang-tidy just shouldn't look at generated code of course; but in this case just modernizing the generated code is easy, so let's do it. Example: .../moc_kastentoolviewwidget.cpp:78:9: warning: use auto when initializing with a cast to avoid duplicating the type name [modernize-use-auto] KastenToolViewWidget *_t = static_cast<KastenToolViewWidget *>(_o); ^~~~~~~~~~~~~~~~~~~~ auto Change-Id: I10c287320e1d5b5b8e66da3e0a22d517d0275dd1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QSpinBox: don't allow series of thousands-separator chars when editingEirik Aavitsland2018-11-091-4/+8
| | | | | | | | | The input validation did not check for unreasonable use of the group separator character. Fixes: QTBUG-65024 Change-Id: If9d70d990fc6d5b298f3bde5b1604bf7e16dce24 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Fix test for multiscreenAllan Sandfeld Jensen2018-11-091-1/+1
| | | | | | | | QTBUG_7714_fullUpdateDiscardingOpacityUpdate2() would fail when it moved to another screen if there is one to the left. Change-Id: I3f8edc04c31dffc5a3bd005d9e5170dd68151df7 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Merge remote-tracking branch 'origin/5.11' into 5.12Liang Qi2018-11-0973-225/+237
|\ | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf qmake/Makefile.unix src/gui/text/qtextdocument.cpp src/gui/text/qtextdocument.h Change-Id: Iba26da0ecbf2aa4ff4b956391cfb373f977f88c9
| * QSyntaxHighlighter: Delay all highlights until first rehighlightMårten Nordheim2018-11-082-5/+20
| | | | | | | | | | | | | | | | | | | | | | When calling setDocument (directly or through the constructor) a delayed rehighlight is initiated. Previously, if any text was changed before this rehighlight could run it would cancel the rehighlight, even if the changed text only caused a new block of text to be highlighted. Fixes: QTBUG-71307 Change-Id: Ib09b664d90906f5b4427105f0e45469806f3a779 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
| * Bump versionOswald Buddenhagen2018-11-081-1/+1
| | | | | | | | Change-Id: I02c0289a7c8a5becde63875fa684075a2a3a4eba
| * Doc: Clarify what samples() returns if not explicitly setAndy Shaw2018-11-071-1/+2
| | | | | | | | | | | | Change-Id: Icf4478121a9d67356eb976039c666d6945a2099c Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * Fix typo in define. s/GL_FRAMEBUFFER_SRB/GL_FRAMEBUFFER_SRGBSergio Martins2018-11-071-1/+1
| | | | | | | | | | | | | | Found with clazy Change-Id: Ied84c0fa95a7ae7b7791e167695acfc7877f7e25 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * Modernize the "textcodec" featureLiang Qi2018-11-0759-202/+206
| | | | | | | | | | | | | | | | | | Also clean up QTextCodec usage in qmake build and some includes of qtextcodec.h. Change-Id: I0475b82690024054add4e85a8724c8ea3adcf62a Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * Update the floppy disk icon (save) to be physically correctThiago Macieira2018-11-066-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Documentation] Fixed the icons for the "file save" action that were inaccurate representations of a 3.5-inch floppy disk (the cut edge was on the wrong side). Now all floppy representations are physically accurate. Change-Id: Ia3b27ae12a1a4fefa3b7fffd155bb86fee5271c3 Fixes: QTBUG-71012 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Fix memory copy in QGIFFormat::disposePrevious()Andrew Smolko2018-11-061-2/+2
| | | | | | | | | | | | | | | | Fix invalid destination address in memcpy operation when RestoreImage disposal method is used. Task-number: QTBUG-71599 Change-Id: Ib74a044c0e45250ff708268c463f831ee54933e6 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * mkspecs: use cross compile tools with LTCGSamuli Piippo2018-11-061-0/+4
| | | | | | | | | | | | | | | | | | AR and NM have different tools when LTCG is used, override those also when cross compiling. Fixes: QTBUG-71595 Change-Id: I5347bd1874688dd89395c50ff6dd08fb1c0ebab1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * windows: Give up on SwitchableCompositionLaszlo Agocs2018-11-052-14/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Opt out of switching between the normal and OpenGL based flush paths. Once a QOpenGLWidget or QQuickWidget becomes visible in a window, the window contents will be composed using OpenGL from that point on, even if said widgets become invisible afterwards. Now that Qt Creator does not rely on QQuickWidget the issue is less burning anyways. Task-number: QTBUG-68329 Change-Id: I177e6e6094ee06ea26d8d0343bd3d84aadfa5913 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | QStyleSheet: use the << form of qWarning to get more infoThiago Macieira2018-11-081-1/+1
| | | | | | | | | | | | | | | | %p just prints a pointer. The operator<<(QObject*) member will print the class type and object name. Change-Id: Iba4b5c183776497d8ee1fffd1564951da0c6bebc Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
* | QImage: merge the size calculations with proper (non-UB) checksThiago Macieira2018-11-083-70/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This check, which was only done once, was wrong: const int bytes_per_line = ((width * depth + 31) >> 5) << 2; // sanity check for potential overflows if (std::numeric_limits<int>::max()/depth < width If width*height overflows, then it's already UB and checking afterwards with a division is pointless and slow. The other instances weren't properly guarding against overflows. Change-Id: I343f2beed55440a7ac0bfffd1563350d4cfa639c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Correct which codecs QTextStream::autoDetectUnicode detectsThiago Macieira2018-11-081-6/+6
| | | | | | | | | | | | Fixes: QTBUG-67187 Change-Id: If7e743cf8476463880ccfffd155f86b78a279f81 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | Optimize QTextCodec::codecForUtfText a littleThiago Macieira2018-11-081-14/+14
| | | | | | | | | | | | | | | | | | Instead of doing byte comparisons, let the compiler do 16- and 32-bit comparisons on its own. Change-Id: If7e743cf8476463880ccfffd155f8629991b0b87 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* | QTextCodec: update the docs for codecForUtfTextThiago Macieira2018-11-081-5/+26
| | | | | | | | | | | | | | | | | | | | | | | | It can detect the standard UTF codecs, but not non-standard like UTF-7[1], UTF-9 or UTF-18[2]. [1] https://tools.ietf.org/html/rfc2152 [2] https://tools.ietf.org/html/rfc4042 Fixes: QTBUG-67188 Change-Id: If7e743cf8476463880ccfffd155f853dc947421a Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | QUtf8Codec: Use one 32-byte load instead of two 16-byte ones on AVX2Thiago Macieira2018-11-081-1/+6
| | | | | | | | | | | | | | | | | | The number of instructions is the same. But if the CPU can issue 32-byte-wide loads, this will be faster. For CPUs that would do two 16-byte loads, this is no worse than current code. Change-Id: I8f261579aad648fdb4f0fffd1553d060b4fc852f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Fix warning about missing initializer for a struct memberThiago Macieira2018-11-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | GCC 4.8 is complaining about perfectly valid (and recommended) code but we still support it, so... qcborvalue.h:74:25: warning: missing initializer for member ‘QCborError::c’ Fixes: QTBUG-71222 Change-Id: If7e743cf8476463880ccfffd155e8775b6b95469 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | QCborStreamReader: make sure setDevice() clears the last errorThiago Macieira2018-11-082-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The unit tests weren't running into this problem because the every setDevice() was preceded by the object being initialized with the exact same data, so there was never a previous error state. I've only changed a couple of tests, left the other setDevice() unchanged so we test both behaviors. Fixes: QTBUG-71426 Change-Id: I1bd327aeaf73421a8ec5fffd1561a590e3933376 Reviewed-by: Nils Jeisecke <nils.jeisecke@saltation.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | Add qHash(QCborTag) and qHash(QCborSimpleType)Thiago Macieira2018-11-081-0/+10
| | | | | | | | | | | | | | | | Needed in qHash(QCborValue). Change-Id: If7e743cf8476463880ccfffd155eeca91369b356 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | QResource: catch signed integer overflow (just in case)Thiago Macieira2018-11-081-1/+4
| | | | | | | | | | Change-Id: I343f2beed55440a7ac0bfffd156321748e4d6048 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | QObject: Check for declarative signals in isSignalConnectedKari Oikarinen2018-11-081-13/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Amends a952fd7d5b03ce1968ec58871fbb8b3600895900. The mentioned commit started to skip QObjectPrivate::isSignalConnected() call if the connectionLists are dirty, which lead to tst_qqmllanguage::receivers() test inside qtdeclarative breaking. Declarative signals were not checked if that function was not called. It previously also wasn't called for signals higher than 64. Fix that by checking for declarative signals after the connectionLists search is unsuccessful. Fixes: QTBUG-71550 Change-Id: Ifcb5fdd0dc9a6b14b9f448a016fd09356a55b985 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | xcb: fix regression with open/close hand cursorsGatis Paeglis2018-11-071-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Linux the correspondence between cursor functions and names of cursors has never been standardized. Projects have either assembled their own cursor function-to-name lookup table or borrowed the table from other projects. The origins of our table is described in QTBUG-71423. On Ubuntu the default theme is called Adwaita. Before bd72950fbedc457fb997e99beff4767505ff5d8f, we would not find a cursor for 'openhand' and would fall-back to QXcbCursor:: createNonStandardCursor(). Which was sub-optimal, because the cursors created by the fall-back path don't look like the themed ones. But the situation was worse after bd72950fb (hence the regression) - the 'openhand' fall-back name 'fleur' is a symbolic link to 'grabbing', so we would get into a situation where Qt::OpenHandCursor displays the same as Qt::ClosedHandCursor. This patch adds a correct fall-back name for 'openhand' on Adwaita, which is 'grab'. 'grab' actually is a symbolic link to 'hand1', but 'hand1' with other theams is a pointing hand cursor, that is why we use the symbolic link's name in this case. The lookup table still appears to be incomplete when comparing e.g with KWin. Eventually we need to revise the table and put in a common place so it can be shared between X11 and Wayland, but is out-of-scope for this patch (see QTBUG-71423). Fixes: QTBUG-71296 Task-number: QTBUG-71423 Change-Id: I247ed4b346c2cd3fe1c7fd0440d3763e0033346b Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | QSocks5SocketEngine: Remove too optimistic check for UDP proxy setupAlexander Akulich2018-11-071-17/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The engine used to send a UDP datagram to the local address to check the proxy setup, but the check fails in case of the proxy hosted in WAN and the local address hidden behind a NAT. In other words the check fails because a public proxy hosted somewhere in internet has no access to local addresses such as 192.168.1.2. Remove the check to fix the issue; we still have other means to detect network errors. Change-Id: Ib6df263c87ebd7d6e88a0b5e024e78a559995234 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | QWidgetWindow: check if receiver is deleted after event deliveryRichard Moe Gustavsen2018-11-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a popup is active, we set the receiver of mouse events to be the active popup widget. But when we send a mouse event to the popup, the receiver might start a new QEventLoop (e.g by executing a new dialog). And in the meantime, the popup will be destroyed. This will cause a crash in the line after the event delivery (where we sat "qt_last_mouse_receiver = receiver"), since at that point, "receiver" would be a dangling pointer. This patch will use a QPointer instead of a raw pointer to store "receiver", to ensure that it's set to null for such cases. Fixes: QTBUG-71062 Change-Id: Ie017cfa97370513ecfdd62c056fcb0e6c991f9f6 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | Avoid crashing with opaque opacity effectAllan Sandfeld Jensen2018-11-071-1/+5
| | | | | | | | | | | | | | | | Fixes the crash, but doesn't fix the underlying bug. Task-number: QTBUG-60231 Change-Id: I5db9b151089b5c0e21e21443c77c725804d3059c Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Fix composition example during OpenGL resizesAllan Sandfeld Jensen2018-11-071-2/+5
| | | | | | | | | | | | | | | | Previous images were sometimes not cleared correctly. Change-Id: I62949b756bf797aa79c5160774f2f258e5c353dd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Make tst_qsslsocket::protocolServerSide() less flakyTimur Pocheptsov2018-11-071-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By accident, when we erroneously tried testing TlsV1_3 on macOS with SecureTransport (which does not support TLS 1.3) we hit this quite subtle problem: it can happen that a server-side socket is never created but a client (after TCP connection was established) fails in TLS initialization and ... stops the loop preventing SslServer::incomingConnection() from creating its socket. Then we dereference nullptr. Task-number: QTBUG-71638 Change-Id: I8dc5a4c53022a25aafe2c80a6931087517a48441 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | Fix QTableView/Widget on macOSTimur Pocheptsov2018-11-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | For this we can use whatever the current NSColor.gridColor contains. While this is mostly needed by the 'Dark' appearance, it also affects the 'Light' theme, since the color QCommonStyle returns is different. Let's use whatever Apple suggests. Task-number: QTBUG-71048 Change-Id: I084414bad546755e9e67792484fe4601826ed0fa Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | White-list more recent Mesa version for multi-threadingAllan Sandfeld Jensen2018-11-061-35/+25
| | | | | | | | | | | | | | | | | | | | The issue we had has been fixed for years, but was unfortunately in libxcb which we can't check at runtime. Instead assume very recent Mesa drivers works. Change-Id: I5fdd726b480b77edbedc0f369ae82ab4acbb77c9 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.12.0' into 5.12" into ↵Liang Qi2018-11-0626-4213/+4496
|\ \ | | | | | | | | | refs/staging/5.12
| * \ Merge remote-tracking branch 'origin/5.12.0' into 5.12Liang Qi2018-11-0526-4213/+4496
| |\ \ | | | | | | | | | | | | Change-Id: I12f26470e01a8582d0f02f51e20d5b742bd95d6f
| | * \ Merge "Merge remote-tracking branch 'origin/5.11' into 5.12.0" into ↵v5.12.0-beta4Jani Heikkinen2018-11-0511-25/+39
| | |\ \ | | | | | | | | | | | | | | | refs/staging/5.12.0
| | | * \ Merge remote-tracking branch 'origin/5.11' into 5.12.0Liang Qi2018-11-0511-25/+39
| | | |\ \ | | | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/cocoa/qcocoaglcontext.mm src/plugins/platforms/xcb/qxcbscreen.h Change-Id: If9b4c67288396ff7346088ce591c7a3588b51979
| | | | * eglfs_kms: initialize m_deviceListenerSamuli Piippo2018-10-311-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If QT_QPA_EGLFS_HIDECURSOR was enabled, m_deviceListener was never initialized, which caused segfault in the destructor. Task-number: QTBUG-71507 Change-Id: Id8b17f5312073249cd12995317213fd746753521 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| | | | * Don't create an offscreen surface when not on the GUI threadAndy Nichols2018-10-301-12/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we try to gracefully destroy a QOpenGLVertexArrayObject it is not possible to create an QOffscreenSurface from a thread that is not the GUI thread. In this case we just need to bail out instead. The side effect that was seen previously was that there would be a warning and a deadlock on Windows when closing QQuickWindows that contained a QQuickPaintedItem backed by a FrameBufferObject render target (which would be using the OpenGL paint engine) when using the threaded render loop. Task-number: QTBUG-70148 Change-Id: I4a20d74d9af850bb90d243212ad9f65c3fc9e616 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| | | | * Fix deleting of QSharedPointer internals in case QPointer loses the raceThiago Macieira2018-10-291-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QPointer uses QWeakPointer / QSharedPointer internals in QObject and has the code to make sure two threads won't stomp on each other if both try to create a QPointer for the same QObject at the same time. The threading code was fine, but had a mistake in the clean up code for the loser thread: the QtSharedPointer::ExternalRefCountData destructor has a Q_ASSERT for the state of the reference counts. So we need to set the state correctly before calling the destructor. But we don't want to do it in case the Q_ASSERT compiled to nothing. So we use a hack that violates the Second Rule of Q_ASSERTs: don't do something with side-effects. This way, we can insert code that will only be compiled if Q_ASSERTs do something, without having to duplicate the preprocessor conditions from qglobal.h. Fixes: QTBUG-71412 Change-Id: I1bd327aeaf73421a8ec5fffd1560fdfc8b73b70c Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
| | | | * xcb: Don't get initial screen rotationBłażej Szczygieł2018-10-292-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "xcb_randr_get_screen_info" can be slow and in some configurations can cause short mouse cursor freezes (which will happen on Qt application startup). Initial screen rotation was used only to not handle possible redundant screen change event. Fixes: QTBUG-70760 Change-Id: I9f01325a045d2c82c4dd2fce91a18a34e54a4bcd Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>