summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.4.1' into 5.4Frederik Gladhorn2015-01-293-1/+16
|\ | | | | | | Change-Id: Idadb5639da6e55e7ac8cc30eedf76d147d8d5d23
| * Fix drag and drop regressionGatis Paeglis2015-01-193-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix regression introduced by e4becdc3d310a0dd1a6d34d0796a52b21dedeb2d Add QPlatformDrag::ownsDragObject() function, QDragManager can use the return value of this function to decide if it should take care of deleting QDrag object or platform plugin will take care of deleting QDrag. XCB platform plugins uses async dnd data delivery mechanism. It allows user to drop something and then continue working with the assurance that the target will get the data regardless of how slow the network connections are, which means that a source window should preserve QDrag data until dnd has finished. Change-Id: I1fbad7380cddec98b756698993dd397409833150 Task-number: QTBUG-43436 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Safeguard QScreen::refreshRate against buggy platform behaviorGunnar Sletta2015-01-212-3/+11
| | | | | | | | | | | | Change-Id: I891bd5272db76e8562f6722b633cc0fdaac5f7a2 Task-number: QTBUG-43853 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Doc: Remove references to QOpenGLContext::destroy()Sze Howe Koh2015-01-191-6/+8
|/ | | | | | | | This function is private. Task-number: QTBUG-35907 Change-Id: I370c0bfd8fda11c68ee76ee42967f117a81b381c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix build error with Intel Compiler 15 on WindowsThiago Macieira2015-01-062-0/+4
| | | | | | | | | | | | | | | | | If the constructor is inline, the generated code needs access to the vtable, which gets emitted with the first virtual function (in QtGui), but somehow icl.exe can't find it in debug. Looking at the .obj files it generates and comparing to MSVC, it seems that: - both generate and export the inline constructor from Qt5Guid.dll - MSVC will call that constructor from qoffscreenintegration.obj - icl.exe will inline the constructor and requires a symbol not exported from Qt5Guid.dll I can't explain why (probably a compiler bug). Change-Id: I0ab9c078ae4fc794826025d68d364124c7247e80 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* Doc: corrected broken links qtbaseNico Vertriest2014-12-233-10/+6
| | | | | | | Task-number: QTBUG-43115 Change-Id: Ib441326083294a6d59d75510142b1481f7b0bc35 Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* Check screen before changing cursorJoni Poikelin2014-12-231-1/+2
| | | | | | Task-number: QTBUG-43508 Change-Id: I6b525cab2a3958f4e3528ed8102d07984f152e60 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Check for valid receiver before sending gesture events.Jason Haslam2014-12-231-0/+3
| | | | | | | | | | | | Gesture events sent to a disappearing tooltip can crash. This can most easily be seen by scrolling over a tooltip on OSX with a magic mouse middle scroll gesture. Task-number: QTBUG-42826 Change-Id: Id5510895f63297ca157e3d24a3f4e3a6034586e8 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* QPlatformSystemTrayIcon: the timeout is in msecs, not secsDmitry Shachnev2014-12-182-3/+3
| | | | | | | | | | | What gets passed to this function is in milliseconds, not seconds (see QSystemTrayIconPrivate::showMessage_sys_qpa implementation), and the only currently existing implementation (in KDE frameworkintegration) expects milliseconds as well. Change-Id: I7a2c847530391aa73183704251c996664668a740 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* QOpenGLContext: Use static invocation of ↵Friedemann Kleint2014-12-181-3/+3
| | | | | | | | | | QGuiApplication::platformNativeInterface(). Fix MSVC warning (release build): qopenglcontext.cpp(1116) : warning C4189: 'app' : local variable is initialized but not referenced Change-Id: I00fa5237bbac4c0e3bb63ea9d3e5096e05dbe1be Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Take ShareOpenGLContexts into account in QOpenGLWindowLaszlo Agocs2014-12-081-0/+6
| | | | | | | | | While the attribute was originally intended for widgets (QOpenGLWidget, QQuickWidget) only, we need a way to get multiple QOpenGLWindow instances whose contexts share with each other. Change-Id: Ib983c9c2815b0a3911bc504ffad8d8dddad192aa Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* Implement heightForWidth().Friedemann Kleint2014-11-272-0/+10
| | | | | | | | | | Add a virtual function QWindowPrivate::closestAcceptableGeometry() which is called from the platform plugin. Task-number: QTBUG-36220 Task-number: QTBUG-36318 Change-Id: I2b3d205e2c75f1d4dd2ba1d333b0d89bc0fcf13a Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* Clarify QGuiApplication::primaryScreenAllan Sandfeld Jensen2014-11-271-1/+1
| | | | | | | Clarify that shown here refers to where they are shown initially. Change-Id: I962fd4b98d80fb1d43e086660fb74eea6b8f532a Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Deprecate implementations of functions deprecated in headersShawn Rutledge2014-11-272-0/+4
| | | | | | | | | If you build with configure -DQT_NO_DEPRECATED this will avoid some build errors. Change-Id: If2b2e57b6919091f3f077ebc2aeca0c3fd2421aa Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Add capabilities to QPlatformInputContext.Friedemann Kleint2014-11-263-3/+25
| | | | | | | | | | | | Add a capability enumeration to QPlatformInputContext and use that to turn off input methods for hidden text depending on platform support. Disable on Windows. Task-number: QTBUG-40691 Change-Id: I9909005de1f21316ec8f64e2729f1fffcd37c7c3 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* don't use QCursor if QT_NO_CURSORShawn Rutledge2014-11-263-0/+8
| | | | | | | to support configure -no-feature-CURSOR Change-Id: I8e7f9a7f80d3d44a1f8e25b909d552351b5f37e4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Fix for current_fbo getting out of sync in QtOpenGLSamuel Rødal2014-11-111-0/+3
| | | | | | | | | | | | | | | When using QGLWidget in combination with QOpenGLFramebufferObject from QtGui, instead of QGLFramebufferObject from QtOpenGL, the current_fbo variable doesn't get updated when framebuffer object bindings change. To ensure that the QGLWidget correctly releases the currently bound framebuffer object when using a QPainter, we keep track of whether QOpenGLFramebufferObject has modified the current FBO binding, and if that's the case we need to read the OpenGL state directly instead of relying on a cached value. Change-Id: If7e0bd936e202cad07365b5ce641ee01d2251930 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Make the -nograb and -dograb arguments actually work on xcbJørgen Lind2014-11-113-30/+0
| | | | | Change-Id: Idc725443e4abe27db3e530f08173897bfcbe1278 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* docs: WindowType is important for dialogs to center themselvesShawn Rutledge2014-11-051-0/+4
| | | | | | | Task-number: QTBUG-41844 Task-number: QTBUG-36185 Change-Id: I61605006048e81d2666eea34f4d041124a24199f Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* QShapedPixmapWindow: do not leak the backing storeGiuseppe D'Angelo2014-10-312-0/+7
| | | | | | Change-Id: Id7cc8cbbcd62c546055d525473f90d2bad0c144a Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Ignore alert on an active windowJohn Brooks2014-10-291-2/+2
| | | | | | | | | | | | | | | | | | | | When QWindow::alert() is called with a duration of 0, it calls QPlatformWindow::setAlertState(true), and expects the alert state to be reset when the window is next activated. Other calls to alert are ignored while alertState is still true. If alert was called for an active window, it would remain in the alert state until deactivated and activated again, and on some platforms calls to alert would be broken while deactivated. Alerting doesn't make sense for active windows, so we can simply ignore it, which was the behavior with Qt 4 on some platforms. Change-Id: Ia3324da4c89db711b63eb31cddf0bf742bb4e3b8 Found-By: Jan Noertemann <jan.noertemann@uni-dortmund.de> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Martin Gräßlin <mgraesslin@kde.org> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Add qobject_cast template specialisation for QWindowJørgen Lind2014-10-291-0/+13
| | | | | | | greatly improving the performance of qobject_cast<QWindow *> Change-Id: If5a1afa6e41f4676f4838ea3ff80f1d89e396dfc Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* QPA: Flush window system events with flags.Morten Johan Sørvig2014-10-224-10/+13
| | | | | | | | | | | Add a QEventLoop::ProcessEventsFlags argument to flushWindowSystemEvents(). This gives the platform plugins more control over which events to flush. Task-number: QTBUG-39842 Change-Id: Id9c01948b22e297b22503d38ec4e726f9f880fd5 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Jonathan Liu <net147@gmail.com>
* Fix ShortcutOverride for QtQuick on OSXJosh Faust2014-10-201-2/+10
| | | | | | | | | | tryShortcutOverride on OSX gets called via QWindowSystemInterface::tryHandleShortcutEvent. This change fixes that to use the QWindow's focus object. Task-number: QTBUG-32928 Change-Id: I51beb774e1fb91e0d8e2c12d087176d917357311 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* Remove QOpenGLContextPrivate::globalShareContextJocelyn Turcotte2014-10-202-13/+0
| | | | | | | | This has previously been replaced with qt_gl_global_share_context and all using code has been ported to the new name at this point. Change-Id: I13832f583456891dd057a7b414f45ec3e83f5698 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Fix QOpenGLWindow tests when devicePixelRatio != 1Jørgen Lind2014-10-201-7/+10
| | | | | Change-Id: I83d71de8b9d735cd649a6c514e41a9ff23625005 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* qplatformmenu: remove unused and deprecated functionRichard Moe Gustavsen2014-10-131-5/+0
| | | | | | | | | | | | | Now that all platforms use the popup function that takes a target rect, lets remove the deprecated one. This is sort of important, since QtQuick controls now uses the new version. So if a (new) platform ends up only implementing the old version, that can end up not working correctly. Change-Id: I34814b3de5ea4954cf21b161e8a834e39e5534c8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Update QOffscreenSurface docs regarding threadsLaszlo Agocs2014-10-131-0/+8
| | | | | Change-Id: Ic2e3230835aa7fc1b1c3ac0530a65cd478e1ec5f Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Doc: Update description of QKeyEvent classTopi Reinio2014-10-131-6/+5
| | | | | | | | | | Update the description on how to use the QKeyEvent pointer passed to key event handlers, and remove an outdated note about multimedia key events. Change-Id: I67a3f0054e28b84d5a0e367c02a329f4670221c7 Task-number: QTBUG-35155 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Fix memory leak in QClipboard::setMimeData()Eskil Abrahamsen Blomfeldt2014-10-101-3/+8
| | | | | | | | | | | | | | | | | | | The setMimeData() function is documented to take ownership of the object passed in, but in the case where the platform plugin did not support the requested mode, we would simply return without deleting the object nor telling the application, so it would cause a potential memory leak. We need to honor the contract, even when we fail to set the mime data. Test was updated to avoid verifying the leak in cases where the platform does not support all modes. [ChangeLog][QtGui][Clipboard] Fixed a memory leak in setMimeData() when the platform plugin did not support the requested mode. Task-number: QTBUG-41852 Change-Id: I2112da1613199fe1b56724e7ccf097b9e912c117 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Don't use QStringLiteral in startsWith/endsWidthMarc Mutz2014-10-091-1/+1
| | | | | | | | | | | | | | | For QLatin1String, startsWith/endsWith is overloaded, so comparing to a latin-1 (C) string literal is efficient, since strlen() is comparatively fast. OTOH, QStringLiteral, when not using RVO, litters the code with QString dtor calls, which are not inline. Worse, absent lambdas, it even allocates memory. So, just use QLatin1String instead. Change-Id: I7eaf464c67b55116f970fe7f58a85f19ce4d254e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Do not re-create windows during application shutdownShawn Rutledge2014-10-061-1/+1
| | | | | | | | | | | | | | | Change 9c3a58a913a7e59359146264ee59d40d703d4db2 causes any window to be re-created when the screen it is shown on is destroyed. This is for the use case of detaching one monitor while another remains. In QWindow::setScreen(), if the screen is null, it will be set to the primary screen. However during application shutdown, it may be that the primary screen has been destroyed before all the windows are destroyed; so trying to set it anyway will cause a crash. qtdeclarative/tests/auto/quick/qquickwindow was segfaulting, especially when running testWindowVisibilityOrder by itself. Change-Id: Ice6b30320ac563f0c70264aa5c57de21d2e4d56e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Doc: Use title case in section1 titlesNico Vertriest2014-09-303-8/+8
| | | | | | | | Using Python script title-cased.py Task-number: QTBUG-41250 Change-Id: I00d3d7a0b30db7304a7904efd6d63abd9a7b493b Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Update license headers and add new license filesMatti Paaso2014-09-24126-2382/+1374
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* Make QScreenPrivate constructor a bit clearerTor Arne Vestbø2014-09-241-5/+5
| | | | | | | | Easier to read/understand that the screen properties are initialized from the platformScreen. Change-Id: I3084c3ac30a08cb4e154536f949475459212d2de Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4Frederik Gladhorn2014-09-249-22/+62
|\
| * Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-09-239-22/+62
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The isAlwaysAskOption was removed in 38621713150b663355ebeb799a5a50d8e39a3c38 so manually removed code in src/plugins/bearer/connman/qconnmanengine.cpp Conflicts: src/corelib/global/qglobal.h src/corelib/tools/qcollator_macx.cpp src/corelib/tools/qstring.cpp src/gui/kernel/qwindow.cpp src/gui/kernel/qwindow_p.h src/gui/text/qtextengine.cpp src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h src/plugins/platforms/android/qandroidinputcontext.cpp src/plugins/platforms/xcb/qglxintegration.cpp src/plugins/platforms/xcb/qglxintegration.h src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/testlib/qtestcase.cpp src/testlib/qtestlog.cpp src/widgets/dialogs/qfiledialog.cpp src/widgets/kernel/qwindowcontainer.cpp tests/auto/corelib/tools/qcollator/tst_qcollator.cpp tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp Change-Id: Ic5d4187f682257a17509f6cd28d2836c6cfe2fc8
| | * QGuiApplication: clear font database on cleanupTim Blechmann2014-09-121-0/+1
| | | | | | | | | | | | | | | | | | Change-Id: If196c5e93b7ed68c6a0f6be7414f9efc8195f168 Task-number: QTBUG-40865 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| | * Add missing private headers warningSamuel Gaist2014-09-043-5/+29
| | | | | | | | | | | | | | | Change-Id: I7a4dd22ea3bcebf4c3ec3ad731628fd8f3c247e0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Recreate child windows when changing screensDyami Caliri2014-08-282-13/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When setting a new screen, the code calls QWindow::destroy(), which recursively destroys all child windows. It then calls create() on the top-level window, leaving child windows destroyed. This causes crashes if you have embedded native widgets. Task-number: QTBUG-40817 Change-Id: Iaace2589f48bbfd5faaf5ff95357ff43b310504a Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| | * Fix handling QT_IM_MODULE=nonePekka Vuorela2014-08-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Was added with 19a39a4 to allow no input context to be created. Broken by commit 24c10b0. Especially if compose input context didn't get compiled, the first input context found was loaded. Also made Xcb integration use compose plugin by default. Change-Id: I992eaa8b383320e4ab725bb7b79f561f4f841458 Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
| | * Android: use correct size when leaving fullscreenPaul Olav Tvete2014-08-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Android, fullscreen means enabling "immersive mode", which results in the screen available geometry changing. When restoring normal mode, oldAvailableGeometry == oldGeometry, which means that the fullscreen branch would be chosen even though the state is not fullscreen. By doing the maximized test first, we will default to non-fullscreen geometry for non-fullscreen windows. Task-number: QTBUG-39977 Change-Id: Ifc7e8b4de7e96d8c00603ce0cd136b95f58012bb Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| | * Make QWindowContainer handle drag'n'dropAllan Sandfeld Jensen2014-08-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Drag'n'drop events were not propagated by a the QWindowContainer to the embedded QWindow. This patch makes the widget accept the events and pass them on Task-number: QTBUG-40603 Change-Id: I97320fbcad27f7c6aa48c95c90bb42dda634764e Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
| | * Fix QT_NO_ANIMATION buildSérgio Martins2014-08-131-0/+4
| | | | | | | | | | | | | | | Change-Id: Ia589e703206d6ca675a392e634e2a445dcf4cca3 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | emulate mouse move in default implementation of QPlatformCursor::setPosJoerg Bornemann2014-09-231-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When QCursor::setPos() is called and the platform plugin doesn't implement QPlatformCursor::setPos, a warning is printed. Additionally, we now emulate a mouse move to have a default implementation that's actually useful. QPlatformCursor::pos() now returns the position that was set by QPlatformCursor::setPos(), or other facilities that generate mouse events, for example the Tslib plugin. Change-Id: Ifc539202765f311baad085f72347aeb732f7b2ba Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | | Fix spin box with fine grained wheel eventsAllan Sandfeld Jensen2014-09-231-1/+10
|/ / | | | | | | | | | | | | | | | | | | | | Only step the value in the spin box when we have accumulated one wheel tick worth of wheel delta. Also fixes the obsolete contructors of QWheelEvent so they set the non obsolete properties. Change-Id: Ic6ea4b37afa8eec85a6ca7bdc0d919bf8fb02608 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Respect the PM_SmallIconSize setting for icons in a menu on OS XAndy Shaw2014-09-201-1/+1
| | | | | | | | | | | | | | | | | | When a platform menu is used then it would hard code the icon size to 16x16. Instead of using the hard coded value then PM_SmallIconSize should be used instead. Change-Id: I27540ebc4397501e8f57686a118c28cd7167c0a1 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | Keep a source of propagated mouse eventsAlexander Volkov2014-09-191-1/+2
| | | | | | | | | | | | | | | | | | Synthesized mouse events should not cause mouse events which look like they were obtained from the system. So set the source of generated events from the original event. Change-Id: I862829446ac6ef664e1b8e4a5b54ed11926a1d4b Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Set a missing source for mouse events synthesized by QtAlexander Volkov2014-09-191-1/+2
| | | | | | | | | | | | | | | | Mouse events synthesized from touch events by Qt should be marked as Qt::MouseEventSynthesizedByQt. Change-Id: I73612621a0248440b3b773f1280395c05c55e4aa Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Change the state of only the left mouse button when sending fake mouse eventsAlexander Volkov2014-09-161-2/+3
| | | | | | | | | | | | | | | | Mouse events synthesized from touch events affect only the left mouse button. So preserve the state of other buttons. Change-Id: I628d41089db39f0c983aa95f311a842111b8c39c Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>