Commit Graph

26631 Commits

Author SHA1 Message Date
Marc Mutz
ec29c76e18 Fix UB in QFontEngineFT::loadGlyph()
Reported by UBSan:

   src/gui/text/qfontengine_ft.cpp:1079:54: runtime error: null pointer passed as argument 1, which is declared to never be null

The default-constructed QScopedArrayPointer is not
reset() in every code path. In fact, in the code
path leading to this memset, the only reset() call
is in the if block right above it, so move the
memset into the if block.

Change-Id: I1f793c313ca56f3315c6bdd55456cb025cafc089
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2016-03-05 12:02:47 +00:00
Shawn Rutledge
d5fde51410 QWheelEvent: make NoScrollPhase opt-in
The fix for QTBUG-50199 involves adding an undocumented enum value
which can be returned from QWheelEvent::phase().  This will be quite
unexpected for applications that use it, which work fine with 5.6.0
and then start receiving this new phase value in 5.6.1.  So it should
not happen by default.  Set the env variable
QT_ENABLE_MOUSE_WHEEL_TRACKING to enable this functionality.
In 5.7 it will be default behavior.  But in 5.6 the default
behavior is as it was before: if you use a conventional mouse wheel,
the phase stays at ScrollUpdate continuously.

[ChangeLog][QtCore] QWheelEvent::phase() returns 0 rather than
Qt::ScrollUpdate when the wheel event comes from an actual
non-emulated mouse wheel and the environment variable
QT_ENABLE_MOUSE_WHEEL_TRACKING is set.  In Qt 5.6, this is required
to enable the fix for QTBUG-50199.

Change-Id: Ieb2152ff767df24c42730d201235d1225aaec832
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2016-03-05 10:48:12 +00:00
Alexander Volkov
362b977e7c Expose the number of X screen through the QXcbScreenFunctions
X screen corresponds to Qt virtual desktop, and RandR output
corresponds to QScreen. There can be more than one X screen,
so we need a way to get the number of X screen for QScreen,
in particular for the right implementation of some methods
in QX11Info.

Change-Id: Ib5e38703bf11ae08bb283f26a7b7b15f1a5e8671
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2016-03-05 10:46:41 +00:00
Marc Mutz
992e762f66 qt_common.prf: when looking for GCC >= 4.6, match GCC 6+, too
Change-Id: Ia04690f62faa214fb91dffc758e253b5a64e5648
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-03-05 09:58:30 +00:00
Marc Mutz
4f57705167 Fix GCC 6 -Wunused-functions warnings
GCC 6 is able to identify member functions that are unused.

Remove them.

Change-Id: Ic77548164b38a1cd3c957d2c57a5bccb979bc02e
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-03-05 09:58:10 +00:00
Andreas Holzammer
2263e5e0aa Fixing the SQLite3 build for WEC2013 again.
The new version broke the build again
-> fix it again.

(cherry picked from commit af2f3bde48)
Change-Id: Ifcc33fbd9f7d7e98901de5130a67501ba19d9895
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
2016-03-04 20:42:38 +00:00
Eskil Abrahamsen Blomfeldt
21c7421d4e Fix application fonts with DirectWrite font engine
There is no way to add fonts to the system font collection with
DirectWrite. Instead you have to write custom collections. But
that would mean keeping two instances of the same font data in
memory since we are already registering them for the GDI engine,
and we have no way of knowing which engine will be used. When
we at some point replace the GDI engine completely, we could
implement this in the proper way, but for now, instead of looking
up the equivalent to the LOGFONT in DirectWrite's system font
collection, we look it up using GDI and then convert the HFONT
to DirectWrite.

[ChangeLog][Windows][Text] Fixed disabling hinting for application
fonts, e.g. when automatic scaling by device pixel ratio is in
effect.

Task-number: QTBUG-18711
Change-Id: I5c1365ab956dfa23d4d687877d7440473ee03bb0
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2016-03-04 16:01:37 +00:00
Eskil Abrahamsen Blomfeldt
273ddd5b23 DirectWrite: Output correct error code on failure
GetLastError() does not return the correct error code for the
DirectWrite functions, they are returned by the function itself.

Task-number: QTBUG-18711
Change-Id: I3931f58bb29a5f2dc4a5aa911ff16a873267d185
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2016-03-04 16:01:29 +00:00
Błażej Szczygieł
caa82c3518 xcb: resourceType names must have only small letters
Change-Id: I563ae26c9e7e6111399fd0b9af7bfb3ff750b34a
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2016-03-04 12:50:25 +00:00
Michael Bruning
409151ea2b [Windows] Blacklist AMD FirePro V5900 cards for angle.
They seem to cause crashes on Windows 7 and 8.

Change-Id: I6e91a195077313610a79358d6787ed211357b56a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2016-03-04 12:16:04 +00:00
Oliver Wolff
04db3f28af Check if WINAPI_FAMILY_PC_APP is defined before using it
Not all Windows compilers (e.g. MinGW 4.9.2) have WINAPI_FAMILY_PC_APP
defined in their headers and report build failures in several
Qt modules including QtActiveQt. This is fixed by defining the needed
values before they are used.

Task-number: QTBUG-49971
Change-Id: Ib7bac1fe07eb76c64d66fa152427918ee39a2eef
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2016-03-04 12:15:35 +00:00
Kai Koehne
9a999eb7b0 Remove QT_MOC_COMPAT from deprecated QProcess::error signal
QT_MOC_COMPAT has the unfortunate behavior that it generates a warning
at runtime, which also cannot be disabled. This is too draconic.

Task-number: QTBUG-51517
Change-Id: I80af8b8b482671e4c9567281c3b1c504d737e202
Reviewed-by: hjk <hjk@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-03-04 12:07:23 +00:00
Timur Pocheptsov
840831b611 Cocoa integration - do not invalidate backing store on move
If window is only moving, there is no reason to reset a backing store,
otherwise with current expose/flush events machinery it's possible
to have glitches while moving a window programmatically.

Change-Id: Ia4408bd23388e529ae93617a92ae84304b707ca1
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2016-03-04 12:03:24 +00:00
Thiago Macieira
d0cdc7ad1e DirectFB: Fix build in C++98 mode
Many DirectFB types have constructors in C++, so we can't initialize
them with = {...}, like we would be able to if they had been regular POD
types.

Change-Id: Ic747cc2ab45e4dc6bb70ffff143840e5780ac2bc
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
2016-03-03 11:35:22 +00:00
Milian Wolff
fdd2ab58ae Fix compile with clang and -Werror.
Fixes the following warning/error:

src/sql/drivers/sqlite2/qsql_sqlite2.cpp:142:19: error: unused variable
  'initial_cache_size'
      [-Werror,-Wunused-const-variable]
static const uint initial_cache_size = 128;
                  ^
1 error generated.

Change-Id: I4ed7f789561dd9b68dd374c122f4db3813e63e05
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2016-03-03 10:33:43 +00:00
Tony Sarajärvi
43e535dd6f Blacklist tst_qnetworkreply tests that fail in RHEL 7.1
Task-number: QTBUG-51545
Change-Id: I0f5fdef315f87401ca5e638bce5dd2dbe85bcb83
Reviewed-by: Akseli Salovaara <akseli.salovaara@theqtcompany.com>
2016-03-03 09:17:44 +00:00
Joerg Bornemann
2b2232b5ea Speed up tst_QLocalSocket::sendData
The data function for this test re-used listenAndConnect_data that
has an additional column "connections" which was never used in sendData.
Thus sendData executed three times the same code which is just uselessly
burned CI time.
Copied the actually needed code of listenAndConnect_data to sendData_data.

Change-Id: I6cdb1c1b72cb4ce7be7c13e90eea30ac09a14914
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2016-03-03 08:25:04 +00:00
Joerg Bornemann
007039eae9 Don't include <windows.h> in the Windows CE qplatformdefs.h
This header defines "interface" which will break compilation of dbus.

Change-Id: I16fa35f822adca14304aa827b047358409d4a150
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2016-03-03 04:47:26 +00:00
Robin Burchell
76f6ceec36 mkspecs: Add a benchmark "feature".
Testcases and benchmarks are rather different entities. You won't usually want
to run benchmarks in the same environment you are wanting to run tests in,
so this feature allows to differentiate between the two.

We also add a "benchmark" make target (similar to check), which runs all
configured benchmarks.

Change-Id: I33759ce44c34e42a6a3a88f34e7b9c4372380721
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-03-02 21:24:54 +00:00
Gabriel de Dietrich
afe3c30759 Don't create accessible interface for QWidgets being destroyed
Change-Id: I975ee556913707e8595b2a89f1bba4299187bcfb
Reviewed-by: Wayne Arnold <wayne.arnold@autodesk.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2016-03-02 19:26:06 +00:00
Friedemann Kleint
0aed4fd941 tst_qimagewriter: Fix leaking temporary files.
Add missing slash to the prefix pointing to the temporary directory.

Change-Id: I0d00f706af58214a9922758a60d097cab7d6bc9d
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2016-03-02 14:53:08 +00:00
Friedemann Kleint
52a5ffb505 QMimeBinaryProvider::loadMimeTypePrivate(): Make name check case insensitive.
RFC 2045 mandates case-insensitive comparison for MIME type and subtype.
Fixes numerous warnings appearing when dumping the database on
Ubuntu 14.04.1 LTS:

Got name "application/vnd.ms-excel.sheet.binary.macroenabled.12" in file "application/vnd.ms-excel.sheet.binary.macroEnabled.12.xml" expected "application/vnd.ms-excel.sheet.binary.macroEnabled.12"
Got name "application/vnd.ms-excel.sheet.macroenabled.12" in file "application/vnd.ms-excel.sheet.macroEnabled.12.xml" expected "application/vnd.ms-excel.sheet.macroEnabled.12"
Got name "application/vnd.ms-excel.template.macroenabled.12" in file "application/vnd.ms-excel.template.macroEnabled.12.xml" expected "application/vnd.ms-excel.template.macroEnabled.12"
Got name "application/vnd.ms-powerpoint.presentation.macroenabled.12" in file "application/vnd.ms-powerpoint.presentation.macroEnabled.12.xml" expected "application/vnd.ms-powerpoint.presentation.macroEnabled.12"
Got name "application/vnd.ms-powerpoint.template.macroenabled.12" in file "application/vnd.ms-powerpoint.template.macroEnabled.12.xml" expected "application/vnd.ms-powerpoint.template.macroEnabled.12"
Got name "application/vnd.ms-word.document.macroenabled.12" in file "application/vnd.ms-word.document.macroEnabled.12.xml" expected "application/vnd.ms-word.document.macroEnabled.12"
Got name "application/vnd.ms-word.template.macroenabled.12" in file "application/vnd.ms-word.template.macroEnabled.12.xml" expected "application/vnd.ms-word.template.macroEnabled.12"

Change-Id: Ie2a427069024080302a95ac46a456288787542c4
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2016-03-02 14:52:59 +00:00
David Weisgerber
acba844c6b Fixed reading REG_SZ without terminating \0 delivers garbage
When reading from the registry, sometimes the string is not null
terminated. In order to fix this, the preallocated QByteArray size
is increased, so that there are guaranteed enough terminating \0

[Windows] Not null terminated strings are now read properly from the
registry

Change-Id: I95fdf42cbbb7074fcf010dd14d0241f02d3c412b
Task-number: QTBUG-51382
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2016-03-02 14:33:44 +00:00
Andy Shaw
82b8158022 Windows: Extract the suffix from the simple file filter case
Since the filter can either be something like "*.txt" or "Text Files
(*.txt)" then it should have the suffix default to "txt" in both cases.

Change-Id: I36a72f5bf0fb12c84db103f91c4fca94d0d933ae
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2016-03-02 14:24:45 +00:00
Oswald Buddenhagen
3bcc303711 fix non-git non-prefix shadow builds
turns out we need forwarding .pris in this case: without them,
QT_MODULE_INCLUDE_BASE points into the build dir, so we fail to find the
pre-generated headers.

an alternative would be writing primary module .pris which already take
that into account, but that would just add even more arcane code paths.

Task-number: QTBUG-51521
Change-Id: I59f2a0d3f2095c9dfa0a8d1cabfc007a30bd2d23
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-03-02 11:06:39 +00:00
Alex Trotsenko
0db793fe41 QAbstractSocket: fix a possible crash in waitForReadyRead()
waitForConnected() could return 'true' even when the socket was
disconnected.

Change-Id: I99d9c9730f4e9b6c8a54696eb92c24c3ef36d261
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
2016-03-02 11:04:03 +00:00
Romain Pokrzywka
359546b069 evdevtouch: ensure touchpoints released with typeB mtdev drivers
This happens in one particular case: when the touchpoint corresponding
to the last slot is reported as released and a new point is reported
as pressed right after, so that both events happens within a same sync.
In this case, there will be two ABS_MT_TRACKING_ID events received,
first with -1 to report the released touchpoint, then with a new id
to report the pressed touchpoint, then the SYN_REPORT afterwards.

This results in m_contacts[m_currentSlot].state being updated to
Qt::TouchPointReleased then Qt::TouchPointPressed, with the former never
being reported during the handling of SYN_REPORT.
To handle this scenario we need to inspect m_lastContacts for a change
in tracking id for a particular slot combined with a non-null state,
indicating that slot has not yet been reported released and processed
in the previous sync. (the state for processed released points is reset
to zero at the end of the SYN_REPORT handler)

Task-number: QTBUG-51563
Change-Id: I01493008cf9f267e758d974dab29556d0a1425ea
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
2016-03-02 06:34:06 +00:00
Vincas Dargis
361142b5fc PostgreSQL: Fix memory leak in subscribeToNotification() and unsubscribeFromNotification()
Both subscribeToNotification() and unsubscribeFromNotification() are missing PQclear calls
to free PGresult.

Task-number: QTBUG-51412
Change-Id: I72ec3438b22bc99205c984b67b922766bcdbed08
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2016-03-01 22:46:16 +00:00
Frederik Gladhorn
ae2d11df10 Add changelog for 5.6.0
Change-Id: Ib3177028cf1cbd124ebf1449d5e00039f38b1a92
Reviewed-by: Tuukka Turunen <tuukka.turunen@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2016-03-01 11:23:43 +00:00
Friedemann Kleint
defd302f64 qt_handleMouseEvent(): Scale coordinates.
Fix tst_qwindow::testInputEvents() to pass when High DPI scaling is in effect.

FAIL!  : tst_QWindow::testInputEvents() Compared values are not the same
   Actual   (window.mousePressLocalPos): QPointF(6,17)
   Expected (local)                    : QPointF(12,34)
.\tst_qwindow.cpp(771) : failure location

Task-number: QTBUG-46615
Change-Id: I1ccacc807f3390b6ab26a369d13fd7896e64cbca
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2016-03-01 11:05:53 +00:00
Andy Shaw
bd43dcae8a Only copy the data if the image is not null
If the image was unable to do the smooth scaling due to running out of
memory then it will return a null QImage, so this should be checked before
copying the data to prevent a crash.

Change-Id: I82a6443ce2d701c45110b5dd3c5ed4813d078312
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2016-03-01 10:12:33 +00:00
Maurice Kalinowski
cb6d751efa Fix tests for platforms without process support
Change-Id: I2d1cefdb5ff574635a75b54499efc392aba84434
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2016-03-01 09:27:13 +00:00
Tim Blechmann
495e8c2054 corewlan: avoid unnecessary currentInterface.serviceActive checks
currentInterface.serviceActive is relatively expensive and causes
significant spikes in cpu load. Luckily, we can easily memorize
the result.

Change-Id: Ic7983b63bba5507bc1e34b0644e73365dc44f200
Task-number: QTBUG-45798
Task-number: QTCREATORBUG-15741
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2016-03-01 09:20:41 +00:00
Tim Blechmann
c2530c7d20 Windows QPA: QWindowsWindow - always treat WM_ERASEBKGND as handled
under certain conditions, a WM_ERASEBKGND message is sent, to a window
without update region. in this case we declare the message as 'handled'
to avoid flickering.

Task-number: QTBUG-48235
Change-Id: I2ed27e020db4b54ec93a445cb219de00f38a62fd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2016-03-01 09:20:31 +00:00
Venugopal Shivashankar
d7d4a3ecfc Doc: Add the missing \l command and the target section title
Change-Id: I8478467a074ecff9834850c36961ae8e218cea02
Task-number: QTBUG-51290
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
2016-03-01 08:56:48 +00:00
Marc Mutz
3e58e15c3d QJsonPrivate::q_littleendian: mark as primitive/movable, depending on T
Inherit the type-classification from the underlying type.

This amends commit 4889269ff0,
which introduced a QVector<QJsonPrivate::offset>, but failed
to mark the payload as primitive.

Change-Id: I525a0456a550e0694b33b36b4aa71475aeac192b
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-03-01 08:48:52 +00:00
Gabriel de Dietrich
8b94ceaff8 QMacStyle and QCocoaTheme: Fix selected item color for non-native menubar
Change-Id: I3b55e9ce896383338cf6ed768d912ca1835b7742
Task-number: QTBUG-28960
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-02-29 22:52:06 +00:00
Gabriel de Dietrich
717ff94639 QMenuBar: Acknowledge AA_DontUseNativeMenuBar
Change-Id: I756f4181d66ef6e79ab7b7be8a23a10171a9f30c
Task-number: QTBUG-28960
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-02-29 22:51:57 +00:00
Joerg Bornemann
6f75c189e1 Fix crash in QProcess::waitForFinished on Windows
Suppose the user connects QProcess::readyReadStandardOutput with a
slot that calls QCoreApplication::processEvents.
Assume the event loop did not handle events between QProcess::start
and QProcess::waitForFinished. The process writes to stdout and exits.
QProcessPrivate::waitForFinished calls drainOutputPipes which calls
QWindowsPipeWriter::waitForReadyRead. This in turn will trigger
_q_processDied via the readyRead signal and processEvents.
_q_processDied will delete the pid object and set pid to null.
After drainOutputPipes returns, _q_processDied is called again but it
must not be called if pid is already destroyed.

Prevent calling _q_processDied if pid is null.

Task-number: QTBUG-48697
Change-Id: Iee047938ee1529057a1a43d71f4e882750903c7e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-02-29 17:52:58 +00:00
Friedemann Kleint
c7e213334b tst_QDialog: Instantiate test dialog on the stack.
Remove the member variable and instantiate only where needed
on the stack to prevent it from interfering with windows created
by other tests.

Remove flag Qt::X11BypassWindowManagerHint as it does not seem
to have any effect.

Task-number: QTBUG-51516
Change-Id: I3bf88bf148f365c57aaf989671f8b9c3c3f0d8e2
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-02-29 15:04:40 +00:00
Friedemann Kleint
837d75eed5 qt_handleTouchEvent(): Scale coordinates when converting touch points.
Remove outdated static functions to convert touch points and use
QWindowSystemInterfacePrivate::fromNativeTouchPoints().

Fix tst_QWidget::underMouse() to pass when High DPI scaling is in effect.

.\tst_qwidget.cpp(9000) : failure location
FAIL!  : tst_QWidget::underMouse() 'childWidget1.underMouse()' returned FALSE. ()
.\tst_qwidget.cpp(10161) : failure location

Task-number: QTBUG-46615
Change-Id: Ie73dba610da357e7be396f2ea0229987f7503462
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2016-02-29 15:04:26 +00:00
Joerg Bornemann
d345783e4d Remove superfluous Windows CE special cases from tst_qprocess.cpp
Use default timeouts for wait functions. The increased timeouts will
only have an effect if the tests fail.
Print process errors if the process could not be started, while we're at
it.
Contract consecutive "#ifndef Q_OS_WINCE" blocks.

Change-Id: I6324e4c5b91b89ebb2580635b88705bbda922907
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2016-02-29 10:01:40 +00:00
Gabriel de Dietrich
f253f4c331 Track target widget when wheel events are received
This issue is reproducible on OS X when using a Magic Mouse
or a combination of Magic Trackpad and regular mouse. In these
cases it's possible to start a scrolling gesture on one widget
and move the mouse cursor over another widget.

Although we send the wheel event phase information, we never
made any use of it. This means that a widget would start
scrolling even though it never received a ScrollBegin event.

In this patch, we make sure the scrolling cycle is respected
and that once a widget starts scrolling, it'll be recieving
all the wheel events until a ScrollEnd event reaches the
application.

For those input devices not supporting a proper phase cycle,
we introduce a new (undocumented) phase value, NoScrollPhase.
If the wheel event phase is NoScrollPhase, then we ignore
the current scroll widget and proceed as usual. This value
is the default for wheel events. It's up to the platform
plugin to set the proper phase value according to the data
received from the OS.

Finally, we fix a few of QWheelEvent constructors to properly
initialize the phase and source properties.

Task-number: QTBUG-50199
Change-Id: I3773729a9c757e2d2fcc5100dcd79f0ed26cb808
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2016-02-29 08:19:51 +00:00
Boris Pek
a17a7d37c2 Update QMAKE_LIB in win32-g++ mkspec
`ar' tool from latest binutils shows warning:
ar error: `u' modifier ignored since `D' is the default (see `U')

Warning message includes word "error" so QtCreator processes it as
error in UI.

`ar' command-line option `u' might be dropped safely because it is
unnecessary. Option `c' is added to suppress extra `ar' warnings.

Other build systems are also affected. For example, automake:
https://bugzilla.redhat.com/1155273

Change-Id: Ia378b720503d93b0c0c12ae7a5f38f4d7c32eee5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-02-27 08:09:15 +00:00
Friedemann Kleint
c3761bf6a7 tst_QDialog::snapToDefaultButton(): Do not check on exact cursor position unless hint is set.
Given the flakyness of cursor positioning, loosen the check to only verify
that the cursor is outside the window. The hint is only active on Windows
depending on a system setting.

Task-number: QTBUG-51516
Change-Id: I474d251cc41e68f182baf8dba84eaf38d914d7ee
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-02-26 19:17:19 +00:00
Friedemann Kleint
9f134750a1 QPlatformWindow::screenForGeometry(): Do not call mapToGlobal() on top level geometry.
Use mapToGlobal() only for foreign windows passing relative coordinates.
Amend change 9915630d08.

Task-number: QTBUG-50206
Task-number: QTBUG-51320
Change-Id: Idee60cc8ea8004c0355ce78a00f807798836b49c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2016-02-26 09:48:39 +00:00
Edward Welbourne
45ae0cb780 Remove a mis-placed QSKIP().
It made us skip the rest of the test, not just the small set of
sub-tests that were conditioned by the if () in whose else it sat.

Change-Id: I5e914e0aeb9d5ba44b21966d071aaccbc590365d
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2016-02-26 09:22:35 +00:00
Marc Mutz
0a8fd9c620 tst_qguimetatype::flags(): port to QTypeInfoQuery
QTypeInfoQuery was introduced for 5.6 to decouple isStatic
and isRelocatable so old code continues to work. But since
this test still uses !isStatic to mean trivially-relocatable,
it will fail as soon as one of the checked types is marked as
Q_RELOCATABLE_TYPE instead of Q_MOVABLE_TYPE.

Incidentally, such a change is in the pipeline for Qt 5.7/5.8,
so fix the test by porting to QTypeInfoQuery. Do this in 5.6,
because that's when QTypeInfoQuery was introduced.

Change-Id: I06f815f26ca9b430e124c4a2f8de2a729999762b
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-02-26 09:12:23 +00:00
Kai Koehne
c320d5221f Win: Prevent crash in qt_message_fatal()
The source argument can be nullptr, e.g. if debug information
has been stripped out.

Task-number: QTBUG-51195
Change-Id: Ie229c82278c420200cad33c19e8c3f52ab7f12c3
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-02-26 08:41:39 +00:00
Friedemann Kleint
4905bf0654 Windows Accessibility: Fix warnings as shown by Qt Creator's Clang based code model.
Introduce C++ casts and add some conversions. Where possible, increase
const-correctness. Remove trivial conversion function
BSTRToQString().

Task-number: QTBUG-50804
Change-Id: I1820d4693db8bc0dfa6c4a5fecd768cf64a4405c
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-02-26 08:24:38 +00:00