summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* make cmake registration of qt plugins make use of PLUGIN_EXTENDSOswald Buddenhagen2014-04-0911-0/+16
| | | | | | | | | | | | | | | | | | instead of assigning plugins to the first module which claims the whole type, try to assign it to a module which the plugin claims to extend. as we are getting stricter in that go, somebody needs to claim the 'generic', 'platformthemes', and 'platforminputcontexts' plugin types. the natural claimant is QtGui. however, as we don't want to auto-link any of these plugins, make them all claim that they extend a non-existing module. QtGui also claims 'iconengines' plugins. the 'printsupport' plugins are also claimed by the respective module. Change-Id: I7af7c16089f137b8d4a4ed93d1577bd85815c87b Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* automatically link plugins belonging to qt modules when building static appsOswald Buddenhagen2014-04-091-0/+1
| | | | | | | | | | | | | | | | the plugins already declare which modules they belong to. additionally, we allow plugins to declare which modules they "extend" - e.g., while the Quick accessibility plugin belongs to Gui's 'accessiblity' type, it makes no sense to link it unless Quick is actually linked. finally, it is possible to manually override the plugins which are linked for a particular type, by setting QTPLUGIN.<type> (to '-' if no plugins of this type should be linked at all). Task-number: QTBUG-35195 Change-Id: I8273d167a046eb3f3c1c584dc6e3798212a2fa31 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix a typo in QBitArray documentationJędrzej Nowacki2014-04-091-6/+6
| | | | | | | Task-number: QTBUG-37839 Change-Id: Id55d2d606b93f7f9e58ef423544e42b548035ee3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Support for DH and ECDH key exchange for QSslSocket serversRichard J. Moore2014-04-093-0/+80
| | | | | | | | | | | | | | | | | Despite supporting DH and ECDH key exchange as a client, Qt did not provide any default parameters which prevented them being used as a server. A future change should allow the user to control the parameters used, but these defaults should be okay for most users. [ChangeLog][Important Behavior Changes] Support for DH and ECDH key exchange cipher suites when acting as an SSL server has been made possible. This change means the you can now implement servers that offer forward-secrecy using Qt. Task-number: QTBUG-20666 Change-Id: I469163900e4313da9d2d0c3e1e5e47ef46320b17 Reviewed-by: Daniel Molkentin <daniel@molkentin.de> Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
* Only define Q_COMPILER_INITIALIZER_LISTS for MSVC 12 SP 2Frederik Gladhorn2014-04-091-1/+6
| | | | | | | | | | | | Nested initialization is broken before SP2, so just disable the whole feature as tst_qvector crashes(release)/fails(debug) Done-with: Jedrzej Nowacki Task-number: QTBUG-38186 Change-Id: I9c5c9e55c75854fc1f05a59fab2ac7dce9b37fbb Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Fix crash when trying to place toolbar into zero-height window.Friedemann Kleint2014-04-093-20/+32
| | | | | | | | | Change QToolBarAreaLayout::item() to return a pointer and check return values in plug(). Task-number: QTBUG-37183 Change-Id: I7029eb9739cbe603460e87d3e5493f116bdb3a89 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* QWindowsOpenGLContextFormat: Default to version 2.Friedemann Kleint2014-04-091-0/+2
| | | | | | | | | glGetString() returns NULL when no current context exists. Task-number: QTBUG-38063 Change-Id: I5cdb265fb2d74bbc5f3e2c34528909323573b2e1 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Fix crash in qt_try_modal.Friedemann Kleint2014-04-091-2/+1
| | | | | | | Task-number: QTBUG-34580 Change-Id: Idc549116fa99aa49ac7c67dcfc76d32ca71f3c76 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Add unhandled Android keys.BogDan Vatra2014-04-091-151/+316
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sort case values. The following new keys were added: KEYCODE_F1 -- KEYCODE_F12 KEYCODE_NUMPAD_0 -- KEYCODE_NUMPAD_9 KEYCODE_AT KEYCODE_PAGE_UP KEYCODE_PAGE_DOWN KEYCODE_ESCAPE KEYCODE_CTRL_LEFT KEYCODE_CTRL_RIGHT KEYCODE_CAPS_LOCK KEYCODE_SCROLL_LOCK KEYCODE_META_LEFT KEYCODE_META_RIGHT KEYCODE_SYSRQ KEYCODE_BREAK KEYCODE_MOVE_HOME KEYCODE_MOVE_END KEYCODE_MOVE_INSERT KEYCODE_FORWARD KEYCODE_MEDIA_PLAY KEYCODE_MEDIA_PAUSE KEYCODE_NUM_LOCK KEYCODE_NUMPAD_DIVIDE KEYCODE_NUMPAD_MULTIPLY KEYCODE_NUMPAD_SUBTRACT KEYCODE_NUMPAD_ADD KEYCODE_NUMPAD_DOT KEYCODE_NUMPAD_COMMA KEYCODE_NUMPAD_ENTER KEYCODE_NUMPAD_EQUALS KEYCODE_NUMPAD_LEFT_PAREN KEYCODE_NUMPAD_RIGHT_PAREN KEYCODE_BOOKMARK KEYCODE_BRIGHTNESS_DOWN KEYCODE_BRIGHTNESS_UP KEYCODE_MEDIA_AUDIO_TRACK Change-Id: I599e9e46ea720e52004a53747d6b21fc7a44262e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* QNX: Work around dlclose issueBernd Weimer2014-04-091-0/+8
| | | | | | | | "Shared objects still referenced" dlerror should actually be treated as "for your information" only, not as an actual error. Change-Id: Ie02bd1db0dd2dc93bb759f8b6c7e825070e17bb9 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Fix out-of-range shiftingMaurice Kalinowski2014-04-091-2/+2
| | | | | | | offsetHi needs to be casted first before shifting. Change-Id: I29c773dd13d5b16042629604015bbf5645fab861 Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* QComboBox: Set the proper font after a MacSizeChange eventGabriel de Dietrich2014-04-091-0/+12
| | | | | Change-Id: I5c90817e52a3e87d9b06b2bb670d69a6953efd47 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Cocoa: Use private property to enable NSWindow child windowsGabriel de Dietrich2014-04-092-1/+9
| | | | | | | | | Enabled for QToolBar to allow it to overlap OpenGL widgets when expanding. Task-number: QTBUG-33082 Change-Id: I76dc8da52bc04eedc6d6779c48753da100ed1c9f Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* QPageSize: remove QPageSize:: overqualificationsMarc Mutz2014-04-092-167/+167
| | | | | | | | This is not Qt style, not needed, and clutters the code, so remove QPageSize:: qualifications where they're not needed. Change-Id: Ia93ac9523ef43a40cf4dab3bcb383a54af666c96 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Cocoa: Fix possible printing memory leak.Morten Johan Sørvig2014-04-091-4/+5
| | | | | | | | The created page format must always be released, even if one of the subsequent PM* functions fails. Change-Id: If42aaeccd6bdb51ba53444f491ca2878783d0678 Reviewed-by: John Layt <jlayt@kde.org>
* Cocoa: Fix crash when creating printer object.Morten Johan Sørvig2014-04-091-3/+6
| | | | | | | | | | | | Fix reference counting error in QCocoaPrintDevice:: createPageSize(). "key" is accessed with a "Get" function and should not be released. Switch from using QCFString to a plain CFStringsRef with manual ref counting. Task-number: QTBUG-38023 Change-Id: I04d661bffeb5b3122b0c3c8eaaffdd1af51842fd Reviewed-by: John Layt <jlayt@kde.org>
* Update qtgui.qdoc regarding OpenGLLaszlo Agocs2014-04-091-17/+35
| | | | | | Change-Id: Ibda6987d005a1e42ebaef23b41ef18ae0b7ffa66 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* QOpenGLWidget: Avoid crashing if updateGL is called before the first resizeJocelyn Turcotte2014-04-091-0/+3
| | | | | Change-Id: I9e7788334de98b35dc5d6beee97a63783a1fe267 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Accessibility Mac: Cache Accessible Elements and Notify about changesFrederik Gladhorn2014-04-0910-62/+226
| | | | | | | | | | | | | | | The big change is that we now keep the id objects representing accessibles around so that they are persistent for ATs. This improves performance of Mac accessibility significantly. This is required for notifications which are now sent so that many things work much better, for example the VoiceOver focus follows the keyboard focus. The parent element in QCocoaAccessibleElement was removed, we can dynamically access it more reliably. Change-Id: I686d212f40d28b392dcc22f16f3c3430f08bdc98 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Correct QOpenGLContext::versionFunctions() docsLaszlo Agocs2014-04-091-4/+6
| | | | | | | | | | | The example is incorrect: no context parameter is needed. There was also no mentioning of the fact the the context must be current at the time of calling initializeOpenGLFunctions(). This is corrected too. Change-Id: If8695140096e4b4f84927579c099b0af80750703 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Forward "_q_platform_*" QWidgets's properties to QWindow.Tomasz Olszak2014-04-092-0/+7
| | | | | | | | | | | This way we can customize QPlatformWindow by using dynamic "_q_platform_" properties in corresponding QWindow. Change-Id: I987b7a17d252541fe766af6aa37a6cffb67f1807 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* XCB: Only use the XFixes extension if availableUli Schlachter2014-04-091-1/+1
| | | | | | | | | | | | | | | | | | Commit 0d4918950e61f added a new place (QXcbWindow::setTransparentForMouseEvents()) where requests from the XFixes extension are generated. However, this wasn't checking if the extension is actually supported before using it. Fix this by turning QXcbWindow::setTransparentForMouseEvents() into a no-op if the XFixes extension isn't available. This means that the window in question won't be transparent for mouse events, but we cannot do much about that if the X server doesn't support the required extension. Task-number: QTBUG-38109 Change-Id: I2931481eb71bab990f2dcf0ec600b9e62d3d799c Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* QPageSize: clean up operator==Marc Mutz2014-04-081-3/+1
| | | | | | | | | | | | Recognize that the d-pointer can never be nullptr and drop the nullptr checks. The d-pointer can never be nullptr as there's no move ctor and all other ctors create a QPageSizePrivate. Change-Id: I6c4e165949ed55510aefbc2d933f20fc8e624333 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPageLayout: clean up operator==Marc Mutz2014-04-081-3/+1
| | | | | | | | | | | | | The old code always compared the Private classes, unless one of them was nullptr (which it never was, as there is no move ctor and all other ctors create a QPageLayoutPrivate. The new code compares the dpointers, and only if they differ, the Private classes. It also drops the nullptr checks, as they cannot trigger. Change-Id: I523c3503e2edb520f98f9b4e2e3bdaf28a9a355d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QPageLayout: provide op!=Marc Mutz2014-04-082-0/+16
| | | | | | | | For consistency. Change-Id: I20fb70999785e2c1947f033d63367a2f6746990a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: John Layt <jlayt@kde.org>
* QPageLayout: make op== non-memberMarc Mutz2014-04-082-7/+11
| | | | | | | | | Better style, since it treats the left-hand and right-hand size symmetrically, e.g. for implicit conversions. Change-Id: Ib5d39b1ebffffcb664ee2f72c756702469e32d3b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPageLayout: use QExplicitlySharedDataPointerMarc Mutz2014-04-082-1/+12
| | | | | | | | | | Many setters check for an actual change before making changes to data members, but because of QSharedDataPointer, the detach had already happened by the time the comparison returned false. Change-Id: I320806e74de4a64fa3a340831621c1f5120ebb0f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: John Layt <jlayt@kde.org>
* QPageLayout: remove QPageLayout:: overqualificationsMarc Mutz2014-04-082-27/+27
| | | | | | | | | This is not Qt style, not needed, and clutters the code, so remove QPageLayout:: qualifications where they're not needed. Change-Id: I62f90c29bcb9f3c137d319051ac79e081fe5fb69 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: John Layt <jlayt@kde.org>
* QPageSize: provide op!=Marc Mutz2014-04-082-0/+10
| | | | | | | | For consistency. Change-Id: I4375a6f8c2514479a7479c735d397bf8a9876db1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: John Layt <jlayt@kde.org>
* QPageSize: make op== non-memberMarc Mutz2014-04-082-6/+11
| | | | | | | | | Better style, since it treats the left-hand and right-hand size symmetrically, e.g. for implicit conversions. Change-Id: If1ffa9dc2a018e402c884f60bfbc82e799daeb92 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPageSize: mark ctors explicitMarc Mutz2014-04-081-6/+6
| | | | | | | | | A QSize or QSizeF is not an accurate representation of a QPageSize, so the corresponding constructor should be explicit. Change-Id: I6b1808e5f93e3caef948c0e5300bd3c20e3c4210 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: John Layt <jlayt@kde.org>
* Don't access null pointerGatis Paeglis2014-04-081-3/+6
| | | | | Change-Id: If9ac712543f7c7fd85d877bba76e67ce89c60c61 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Prevent QUnifiedTimer from ticking backwards.Michael Brasser2014-04-081-4/+6
| | | | | | | | | | | | | | | This could happen in the following situation: * a custom animation driver with fixed delta * a triple-buffering scheme (rendering ahead a frame) * a second animation timer starting while a first was active This would cause QUnifiedTimer::startTimers() to trigger QUnifiedTimer::updateAnimationTimers(-1), and use the current time from the QElapsedTimer rather than the animation driver. This time could be less than the last reported time from the animation driver. Change-Id: Ibf1796fcb99f288d4946b30e5e7225695aa61781 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Ensure we initialize things before checking the openssl version.Richard J. Moore2014-04-081-0/+3
| | | | | | Task-number: QTBUG-37783 Change-Id: Ie276e597062d8bfc74ef57251ed21a94020e030f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QTestCase: fix macros taking expressions to avoid clang warningsShawn Rutledge2014-04-081-7/+7
| | | | | | | | | | They were of the form "warning: using the result of an assignment as a condition without parentheses [-Wparentheses]" Change-Id: I049bf0f67073bf41310ca5ee73f17e5e69de569f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Fix xcb plugin backing store byte order issueJason Haslam2014-04-081-9/+24
| | | | | | | | | | | | The image format of the backing store should use the byte order of the machine where the application is running, not the native format of the X server. Then, if the byte order of the backing store image differs from the X server's native format, it needs to be converted before being sent across the network. Task-number: QTBUG-29898 Change-Id: Ic91c8ffb814c6beeb9f1d9195174a47d8bd94a90 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* QNX: Destroy window buffers when resizedBernd Weimer2014-04-083-37/+31
| | | | | | | | | QNX version of screen doesn't reallocate window buffers dynamically. The buffers have to be destroyed and recreated when a window is resized. As the overhead is minimal this will be done on BlackBerry, as well. Change-Id: I488942879822c64a6ab1871ebf5d6da9aec144d6 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* HB-NG on Mac: Fix PDF in end of stringEskil Abrahamsen Blomfeldt2014-04-081-2/+22
| | | | | | | | | | | | | | | The CoreText engine will remove the PDF token from the end of the string (instead of producing a zero-width glyph for it), thus the output will be different from the OpenType backend and Qt will get confused. To fix this, we emulate the expected behavior by molding the output in a special case. This is a port of e45c4387ae16627d61e30a58ae901d888d375aa7 from Qt 4. Task-number: QTBUG-38113 Change-Id: Ia0a078e3a60317981d4d5a4ee7e575a1714a1d75 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Mac style: Fix one-pixel offset for combo boxes in small sizeGabriel de Dietrich2014-04-081-1/+1
| | | | | Change-Id: I744c102bd086742b1052ed547e50037dddff4654 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* QCUPSSupport: fix misuse of QDateTime::addDays()David Faure2014-04-081-1/+1
| | | | | | | | | | | QDateTime::addDays() is a const function and returns a new QDateTime with the given days added, thus the current statement had no effect. Found by applying Q_REQUIRED_RESULT in dev branch. Change-Id: I1b061619d45d7806feaa2bf9fb6d9f0b43d63def Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QNetworkReplyHttpImpl: fix misuse of QDateTime::addSecs()David Faure2014-04-081-2/+1
| | | | | | | | | | QDateTime::addSecs() is a const function and returns a new QDateTime with the given seconds added, thus the current statement had no effect. Found by applying Q_REQUIRED_RESULT in dev branch. Change-Id: Id712334f91e0adb40bafc23470bf46479334c81a Reviewed-by: Richard J. Moore <rich@kde.org>
* Mark Variable Length Arrays as a TS feature for C++14Thiago Macieira2014-04-081-1/+2
| | | | | | | | | | | | | The feature was removed from the C++14 draft standard and moved instead to a Technical Specification. Since we don't know how to enable TS features in GCC 4.9 yet, remove it from the definition. The Clang definition is probably safe, since it is behind an #if __has_extension. Change-Id: Ibc32b35657b046680078b39a7678bd8e1e5395d2 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Fix QNetworkRequest::setRawHeader() for QT_NO_CAST_FROM_BYTEARRAYRichard J. Moore2014-04-081-1/+1
| | | | | | | Avoid the implicit conversion in the doc snippet. Change-Id: Iacec6dab371a22c16f537af471f6653d9c5ad43d Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Don't redefine dynamic_cast if it's already a macroThiago Macieira2014-04-081-1/+1
| | | | | | | | | | Redefining macros is always a bad idea. On top of that, MSVC doesn't like when we #define dynamic_cast, even though the C++ standard explicitly allows it. Task-number: QTBUG-29093 Change-Id: I6e33d609ce213cf6a9085faa3f991a873d825dc6 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Android: use glyph cache resizing workaround with Vivante GC1000 GPU.Yoann Lopes2014-04-071-1/+2
| | | | | | Task-number: QTBUG-38102 Change-Id: I9f423e15b9cbc3d2f424871f47795052b1f53e09 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* QPageLayout: use existing qBound()Marc Mutz2014-04-071-9/+4
| | | | | | | instead of rolling our own qt_clamp(). Change-Id: I2729ae3ff98e8c29c66f0f5c792b1bc7bf586f06 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* network: finish all pending replies upon errorPeter Hartmann2014-04-071-11/+16
| | | | | | | | | | | | ... and not only one. This was a problem e.g. when there were several requests to the same host and the host was not reachable; only one reply would get an error signal in case we suppressed other errors in "happy eyeballs" host lookup style. Task-number: QTBUG-36890 Change-Id: I1b5757498bd644b0d773cf6c43e4950620949c5c Reviewed-by: Richard J. Moore <rich@kde.org>
* QStyle: Add new SH_ComboBox_UseNativePopup style hintGabriel de Dietrich2014-04-072-0/+4
| | | | | | | | | | | | If the style hints it, QComboBox::showPopup() will try to show a native popup instead. This is currently undocumented and an opt-in feature (typically by using a proxy style). Works only on Mac so far. Task-number: QTBUG-32731 Change-Id: I4447e884cbd6b490f3039c7a95168698c0bed16e Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* QComboBox: Use native popups on MacGabriel de Dietrich2014-04-072-6/+94
| | | | | | | | | | | | | | This remains an opt-in solution bound to the usage of SH_ComboBox_UseNativePopup in a proxy style. The midterm goal is to make this option on by default, possibly in 5.4. This solution is and will remain a hint in the sense that some exotic use cases of QComboBox (e.g., when setting its view) are inherently incompatible with the native popup idea. Task-number: QTBUG-32731 Change-Id: I2a3d780795c22f9989e44325fcaf314538b1de49 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* QGuiApplication: fix crash caused by posting fake mouse eventRichard Moe Gustavsen2014-04-071-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since Qt expects a mouse press/release event to not change mouse position in the same event, QGuiApplicationPrivate::processMouseEvent will detect if a QWindowSystemInterfacePrivate::MouseEvent tries to do this and convert it to two events; one move and one press/release. The problem is that the extra mouse event gets posted. So if delivering the first event causes a flush in the event queue (which can easily happen if e.g calling processEvents), the second event will be processed before the first returns. On iOS we see a crash with DnD as result of this, since drag data gets deleted on mouse release, and returning back to a mouse move after that will cause dangling pointers. This patch will instead of posting the event, call the event handler recursively with the faked event as argument. That way a flush will not cause the "pending" event to be delivered. Change-Id: Id9d88053b4859083fedd666584815016d67ac51b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>