summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-12-297-14/+14
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.cpp src/gui/kernel/qplatformsystemtrayicon.cpp src/gui/kernel/qplatformsystemtrayicon.h src/plugins/platforms/xcb/xcb-plugin.pro Change-Id: I00355d3908b678af8a61c38f9e814a63df808c79
| * 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>
* | emit lastWindowClosed even if quitOnLastWindowClosed is falseShawn Rutledge2014-12-231-14/+12
| | | | | | | | | | | | | | | | | | | | | | Behavior will agree with the docs. [ChangeLog][QtGui][QWindow] lastWindowClosed will be emitted even if quitOnLastWindowClosed is not set Task-number: QTBUG-32956 Change-Id: I7bb269d53894859fee27e171eea7ad472ea86af0 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Add a function for QPA plugins to explicitly destroy QScreensGiulio Camuffo2014-12-233-4/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously QPlatformScreen was automatically deleting its QScreen in ~QPlatformScreen(). That means that we cannot use QScreen's methods when the screen is being removed, because doing so would call virtual methods of QPlatformScreen. By that point the QPlatformScreen subclass object does not exist anymore, and we call the default implementation instead of the subclassed one, or get a crash for the pure virtual methods. This happens for example when removing a screen which contains a QWindow with some QML item using QQuickScreenAttached. This patch adds a QPlatformIntegration::destroyScreen() function, which deletes the QScreen and later the QPlatformScreen. ~QPlatformScreen will still delete the QScreen if it was not deleted with destroyScreen(), so code not ported to the new approach will continue to work as before, with only a warning added. Task-number: QTBUG-41141 Change-Id: Ie4a03dee08ceb4c3e94a81875411f6f723273fe1 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/devGiuseppe D'Angelo2014-12-201-3/+3
|\ \
| * | Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-181-3/+3
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h src/platformsupport/platformcompositor/qopenglcompositor.cpp src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I5422868500be695584a496dbbbc719d146bc572d
| | * 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>
* | | QOpenGLWindow: make it possible to use a shared contextJørgen Lind2014-12-202-3/+28
|/ / | | | | | | | | Change-Id: I7e9f115a9b75d38c1d6a214958d18d6fd9eac891 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Unbreak shortcut handling on embeddedLaszlo Agocs2014-12-151-4/+9
| | | | | | | | | | | | | | | | | | | | | | It went completely broken after the fix for QTBUG-32928. The crash fix I made afterwards forgot to take into account that the shortcuts must still be handled, even when the window in the input event is null. So instead of bailing out on a null tlw, we have to use the window that currently has the focus. Task-number: QTBUG-43203 Change-Id: I6cd65ee5bd021f80d9440cba8bc9dfda9abe2cfd Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Don't attempt to load an empty generic plugin if no environment variable is set.Robin Burchell2014-12-101-2/+7
| | | | | | | | | | | | | | Also warn if a requested generic plugin is not available. Change-Id: Iab1f1f87be435b4ad446881cba25d0b19a564f08 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-101-0/+6
|\| | | | | | | | | | | | | | | Conflicts: doc/global/template/style/online.css mkspecs/android-g++/qmake.conf Change-Id: Ib39ea7bd42f5ae12e82a3bc59a66787a16bdfc61
| * 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>
* | Improve TouchPoint debug outputLaszlo Agocs2014-12-091-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Printing a QWindowSystemInterface::TouchPoint can be misleading if it only includes the normalized position. Many backends do not provide such information so it is often 0, 0. Print also the "area" which is always set, the center of this rect is the actual touch position in screen coordinates. Change-Id: I2f3efabf6ced6fae9937518cc39d898e66b7894e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Harmonize QPA TrayIcon showMessage parameter orderShawn Rutledge2014-12-082-2/+2
| | | | | | | | | | | | | | | | | | | | Parameters were misnamed in some places but still managed to pass them through in the right order. Rename to avoid confusion, and keep the parameter order the same as in QSystemTrayIcon::showMessage. Change-Id: Ib4c8fff15eff15034c4ea64757803b118e487144 Reviewed-by: Marco Martin <mart@kde.org> Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Add Q_DECL_OVERRIDE in the src subdirectoryOlivier Goffart2014-12-0310-27/+27
| | | | | | | | | | | | | | | | | | | | Done automatically with clang-modernize on linux (But does not add Q_DECL_OVERRIDE to the function that are marked as inline because it a compilation error with MSVC2010) Change-Id: I2196ee26e3e6fe20816834ecea5ea389eeab3171 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-2710-4/+48
|\| | | | | | | Change-Id: Id20053d261b4fbbcc0ac8ba49dd3ef2253fa4b95
| * 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>
* | Avoid crashing on embeddedLaszlo Agocs2014-11-261-1/+1
| | | | | | | | | | | | | | | | | | tlw can be null. handleKeyEvent() is already fixed. Change-Id: I92ffca30841147aca4fa536b80736c799aae4ac0 Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* | Prevent duplication of display name in window titles.Friedemann Kleint2014-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not append QGuiApplicationPrivate::displayName() to window title if the title already contains it. Fixes Qt Designer showing up with window title Qt Designer - Qt Designer after qttools:9a58492ce6b62c0fdab373337f39103f4072ad9d Change-Id: I5ac07a7f4be70372342324a175faf8c825867f50 Reviewed-by: David Faure <david.faure@kdab.com>
* | Add name for the Touchpad[Toggle|On|Off] keysAlbert Astals Cid2014-11-251-0/+3
| | | | | | | | | | | | | | Change-Id: I22de911fa56165b36ca9a4c9d22673e11603a746 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-247-32/+29
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qiodevice.cpp src/plugins/bearer/linux_common/qofonoservice_linux.cpp src/plugins/bearer/linux_common/qofonoservice_linux_p.h src/plugins/platforms/android/qandroidplatformtheme.cpp src/tools/bootstrap/bootstrap.pro src/widgets/styles/qmacstyle_mac.mm Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
| * 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>
* | Add debug output for QPlatformSurfaceEvent.Friedemann Kleint2014-11-171-0/+14
| | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtGui][QPlatformSurfaceEvent] Added event class QPlatformSurfaceEvent, which is sent to QWindow and QOffscreenSurface when native surface is created or about to be destroyed. Task-number: QTBUG-42476 Task-number: QTBUG-42483 Change-Id: If62e2c2a1f2a94fd310bbf7cf22b94c70125ba7a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Send events when platform surfaces are created/about to be destroyedSean Harmer2014-11-174-0/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | These synchronously delivered events allow applications to correctly and conveniently handle native platform surfaces being destroyed. This is particularly useful when doing rendering on a non-gui thread as it allows to shutdown rendering before the native surface gets destroyed from under us. Task-number: QTBUG-42476 Task-number: QTBUG-42483 Change-Id: I63f41bbdb32f281d0f3b8ec2537eb2b0361f3bb3 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | QSurface: added Q_DECLARE_METATYPEPaul Lemire2014-11-141-1/+3
| | | | | | | | | | | | | | | | | | In Qt3D we need to be able to send a QSurface * through a QVariant which would allow us to be as generic as possible. Change-Id: I2ca2760f9b985c8dc1db822048fa41e13774d52c Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Ensure that a leave event is sent to a popup that is being closedJørgen Lind2014-11-072-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a context menu contains a menu item which will open a dialog, the context menu will never get the leave event, which might leave the menu in an invalid state. Synthetic leave events are sent to windows, but not to popups that are blocked by modal dialogs. Hovever, a popup is removed from the popup stack in QApplication before it receives the leave event. Therefore always give popups events, even when they are not visible. Task-number: QTBUG-38021 Change-Id: I63f6febed44f1e7c8f29e7a09af07f32b4ddbc82 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Do not crash during global key presses.Jan Arve Saether2014-11-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This crashed because on Android we called QWindowSystemInterface::handleKeyEvent() with QWindow argument set to 0 This is a regression and started to crash after commit d7ca800a8 (it added the call to tryHandleShortcutEvent() without checking the window pointer). Change-Id: Iefd5fe782a0f7f1e1569580ed4fcb2ef60eed2d2 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Add QKeySequence::BackspaceMorten Johan Sørvig2014-10-313-2/+6
| | | | | | | | | | | | | | | | | | | | Handle it in QWidgetTextControl. Add Meta(ctrl) + H key sequence binding on Mac. Task-number: QTBUG-32837 Change-Id: Ib1cbb2ce2e20350b4d8c72bd320dff27c1467f2b Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* | Clean up ShortcutOverride handlingFrederik Gladhorn2014-10-304-14/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of sending the event from random places, send it from QWindowSystemInterface. This allows to send override events on OS X to menus before doing other key processing and reduces the number of ShortcutOverride events on all platforms to exactly one per key press event. Additional test by Friedemann Kleint. Task-number: QTBUG-38986 Change-Id: I6981bb776aba586ebc7c3daa5fd7a0d84c25bc3e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-274-10/+13
|\| | | | | | | | | | | | | Conflicts: src/gui/text/qfontdatabase.cpp Change-Id: I6ac1f55faa22b8e7b591386fb67f0333d0ea443d
| * 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>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-208-36/+41
|\| | | | | | | Change-Id: If7e51514ed6832750e3ad967e4d322ccf920d2bb
| * 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>