summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix invalid memory read when shutting down QML applicationsSimon Hausmann2013-11-292-1/+39
| | | | | | | | | | | | | As the last line in the QObject destructor, we call setParentHelper(0) to remove ourselves from the parent. In the process of that we also initiate the QML parentChanged callback. The first thing that parentChanged callback used to do (but now does it too late, after 26350b5ceafa0ade1328037f6234a7d288eb8f48 in qtdeclarative) is to check if the object was deleted and then return. We could re-introduce the check there, but I think it's cleaner to not bother calling the callback on a dead object in the first place. Change-Id: Ia4d43b65a9b3744a451b4c312a2d6f9c0e3b67dc Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* CMake: Parse the output of new CMake versions.Stephen Kelly2013-11-271-2/+3
| | | | | | | | | As of CMake 3.0, the output of `cmake --version` now has a second line showing that it is maintained by Kitware. Change the version parsing to look only at the first line of output. Change-Id: I347de4c376e0bde25a43a38d59587d9b63f6b43a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Revert "Store the font's scalability in QFontEngine."Yoann Lopes2013-11-273-5/+1
| | | | | | | | | | | | This reverts commit 65b12fbdb13d34c61bcadd5cc8fd6ee28a8dfafd. QFontEngine is not always loaded from QFontDatabase, resulting in the flag not being set. Change-Id: I39bc5bd4a8dea153d191cfc55f4324195f75f64c Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QNX: Fix retrieving the window group nameFrank Osterfeld2013-11-271-2/+4
| | | | | | | | | The code assumes that there is a root window, and crashed otherwise. Task-number: QTBUG-35121 Change-Id: Idbf0e0bfc03cd427f0aab81db88b34fe94228c81 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Remove leading '/' from target paths.Stephen Kelly2013-11-271-2/+2
| | | | | | | | | | | | This is inappropriate on Windows, and breaks non-prefix builds there. This is only needed when we calculate a relative path from a sysroot, so only add it in that case. Task-number: QTBUG-34880 Change-Id: I0e3b3d977a7b56649e4ba0077ac574aabf1dc915 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* CoreWLan: Fix potential unhandled exception assertGabriel de Dietrich2013-11-262-4/+6
| | | | | | | | | | -[QNSListener notificationHandler:] was declared as not taking any parameter, but used as taking a single NSNotification. This would lead to an 'unrecognized selector' exception raised by Cocoa. Task-number: QTBUG-26844 Change-Id: I56d03a7738c2a1b9dcf3cdecc696b01e65d7b233 Reviewed-by: Liang Qi <liang.qi@digia.com>
* Android: Remove invalid error messageEskil Abrahamsen Blomfeldt2013-11-261-3/+1
| | | | | | | | | | All usage of context menus prints out an error message because onContextMenuClosed() is called more than once. We just return silently instead if the method is called after the menu has already been closed. Change-Id: Ifa27ed42d188fdf670f09c4b1450b9fec0d5941f Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Fix for co-existence of QtDeclarative and QtQmlSimon Hausmann2013-11-262-2/+8
| | | | | | | | | | | As a follow-up to commit 2f87fde9bb4bad6787101c0d135419b350b201a5, we also need to change "hack" in the QGraphicsItem and QWidget destructor for early item destruction to support the _qml1 variant of the QObject destroyed callback. Task-number: QTBUG-35006 Change-Id: I65e37b1e9ddd8d14267aaba024408611b8cd3d77 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix deadlock when disconnecting connections made with function pointersv5.2.0-rc1Olivier Goffart2013-11-261-3/+2
| | | | | | | | | | | | | The regression was introduced in 5885b8f775998c30d53f40b7f368c5f6364e6df4 QMetaObjectPrivate::disconnectHelper may unlock the sender mutex. And while relocking it, we need to make sure to lock the sender and receiver mutex in the right order. So don't lock the receiver mutex in advance, but re-lock it for each connection. Change-Id: I4f6d19791cdcce3693d7f45e7beb6b564fd69277 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix formatting in the platform-specific changes part of the ChangeLogThiago Macieira2013-11-261-11/+8
| | | | | | | | | | | No need to have the "Qt for" part of the platform. This was used back in the Qt 4 days when we referred to "Qt for Embedded Linux" or "QtopiaCore" before that. This also fixes the duplicated "Windows" and "Qt for Windows" sections. Change-Id: Ia04172d0f322079f667b64a90c5f23d03588d0db Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Reflow the ChangeLog part for QtNetworkThiago Macieira2013-11-261-15/+11
| | | | | | | | Wrap to column 76, add a space before the dash and remove the line between entries with no sub-bullets. Change-Id: Ibba86161659ccad9fe98dd37a9eba57e807aa3ac Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Update ChangeLog for 5.2.0 [QtDBus]Thiago Macieira2013-11-261-0/+10
| | | | | Change-Id: I8b58ea636eac2be4da967c18057c38990bc9178f Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix a race that occurred as we unlock the mutex to destroy the functor in ↵Olivier Goffart2013-11-262-23/+73
| | | | | | | | | | | | | | | | | | | | | ~QObject When we unlock the mutex, we need to take in account that the Connection pointed by 'node' may be destroyed in another thread while it is unlocked Doing 'node->prev = &node' will make sure that 'node' is actually updated when it is destroyed. Setting isSlotObject under the mutex is safer and ensure that no other thread will attempt to deref the object. The regression was introduced in 5885b8f775998c30d53f40b7f368c5f6364e6df4 tst_qobjectrace was updated to catch races arising when we are connecting with function pointers. Change-Id: Ia0d11ae8df563dad97eb86993a786b579b28cd03 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* iOS: Update statusbar visibility and screen properties before window geometryTor Arne Vestbø2013-11-252-8/+12
| | | | | | | | | | | | When setting a new window state. Otherwise we set the geometry based on the old screen properties, and then rely on the properties causing another window layout, which may not always happen. We also need to explicitly update the screen properties when the statusbar changes visibility, as there are no callbacks from iOS that consistently gives us that information. Change-Id: I1c3328aa3f34d294bc7db8884e611d205fd2c761 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: Prefer window states over geometry-heuristics when laying out windowsTor Arne Vestbø2013-11-251-2/+6
| | | | | | | | | A window that was resized to the full screen size of the screen would otherwise always stay in full screen, even if the window state was maximized. Change-Id: I4720f7b6ad1d85658ea96c6da0515693e8c827f3 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: Don't warn about QBackingStore::resize() != window.size() for widgetsTor Arne Vestbø2013-11-251-1/+1
| | | | | | | | | | | QtWidgets uses stale geometry data to do its backingstore resizes in a lot of places, eg QWidgetPrivate::setGeometry_sys() and show_sys(). As the resize doesn't have any effect for our GL backingstore anyways we can skip the warning to keep console noise down. Change-Id: Ie578f7faf35985708fddd0bfca4a7080820192c5 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* iOS: Don't enable translucent statusbar for iOS6 on iPadsTor Arne Vestbø2013-11-251-2/+5
| | | | | | | It's only available on iPhone/iPods. Change-Id: I61b45c84ddb2b3db46fff36286a6582406fa7d26 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Revert "Android: Use native platform menus."Eskil Abrahamsen Blomfeldt2013-11-251-8/+0
| | | | | | | | | | | | This reverts commit 98f0b4668999d677d8bf91d57ac095d96e7a661c. The native menu popup would never exit its event loop, because there's no listener for the closing of the menu. Since this is very last minute and the change is not ready, we revert it and use the widget menus instead. Change-Id: Ie9ae707300a265130a90d1ccb5f093f50cc0b2fb Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* iOS: close keyboard upon hitting key 'done'Richard Moe Gustavsen2013-11-251-1/+4
| | | | | Change-Id: I0098cc4d51ca600ba48baa15ed9c16e56529b947 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Update ChangeLog for 5.2.0 [QtCore]Thiago Macieira2013-11-251-3/+126
| | | | | Change-Id: I2f6adc13d454825a2f444121a87dfd189e1c70f9 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Update ChangeLog for 5.2.0 [QtWidgets]Marc Mutz2013-11-251-28/+158
| | | | | | | | | | First batch of changes applied to src/widgets since v5.1.0. Change-Id: I23515e8dd340f8551d1681d0abeb2cbbff3683d7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Update changelog for 5.2.0 RC1Thiago Macieira2013-11-251-71/+201
| | | | | | | Change-Id: I3a34fe4d26dab1eab9518f995406ecc85d5ff4c1 Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* actually complain about invalid -[no-]{sql|imageformat}-* optionsOswald Buddenhagen2013-11-251-4/+5
| | | | | | | Change-Id: I0530d7dcdeb944db76bc708512c57e537f2c95c8 Reviewed-by: Vladimir Minenko <vminenko@rim.com> Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* iOS: update keyboard layout upon focus transferRichard Moe Gustavsen2013-11-252-2/+19
| | | | | | | | | | | | | | | | | | | | When iOS transfers focus from one view to another, it asks the new view for its UIKeyInput properties before deciding how the keyboard should be configured. For Qt, the same QUIView is used for the whole QWindow which means that UIKit will not change the keyboard configuration just because we change the focus object in Qt, since the UIView does not change. There seems to be no way to tell UIKit that the keyboard needs to change becuse the UIKeyInput properties has changed. To work around this, we briefly resign first responder status, and grabs it again, for the same QUIView. Change-Id: I2d15cc0c928deb023e7da58ad4669b7099dce2cf Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: add [QUIView updateTextInputTraits]Richard Moe Gustavsen2013-11-251-9/+43
| | | | | | | | | | Configure QUIView text input traits from IM hints returned by the focus object when the view becomes first responder. This will affect the layout of the virtual keyboard. Change-Id: Ib140ba69d01cc747f3ac3cdd70dd2e7daede26b0 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: don't loose precision when converting CG typesRichard Moe Gustavsen2013-11-254-15/+16
| | | | | | | | | CGRect and CGPoint consist of CGFloat variables. So we should convert to QRectF and QPointF rather than QRect and QPoint. Change-Id: I76f180e4064f54d5810c49b88fdbbcd914bdb686 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: don't scroll after inputItem has movedRichard Moe Gustavsen2013-11-252-0/+16
| | | | | | | | | | | | If the inputItem moves, it typically means that the user scrolls or flicks the focus item around. In that case we should avoid scrolling the screen, otherwise they will "cancel out" each other. Besides, when the user flicks, he takes control over the whereabouts on the screen anyway. Change-Id: Iad0762965f9dcdbcca934ce6d90a8c1413ce3ca2 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: scroll screen when keyboard opensRichard Moe Gustavsen2013-11-253-14/+131
| | | | | | | | | This change will let QIOSInputContext scroll the root view when the virtual keyboard is open, so that the input cursor is not obscured. Change-Id: If0758f4bf04c2b8e554e0196451154def7e3cb86 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: Do not skip building QtGraphicalEffects moduleAndy Nichols2013-11-251-1/+1
| | | | | | | | | | | The QtGraphicalEffects module is a QtQuick2 only module so it is clear why it was left out before iOS had support for QtQuick2, but now it should be built by default. This commit removes QtGraphicalEffects from the iOS module "skip list". Change-Id: Ie0890f6784ad6e276e80bf7a11195c141ca23332 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: Do not skip building QtQuickControls moduleAndy Nichols2013-11-251-1/+1
| | | | | | | | | | | The QtQuickControls is supported for 5.2 though it does not provide the system native "look and feel". This patch removes the module from the iOS module "skip list". Task-number: QTBUG-35033 Change-Id: Icad479f2e4651c02e569e8a86cfe5ac912d8ed10 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* iOS: Do not skip building QtMultimediaAndy Nichols2013-11-251-1/+1
| | | | | | | | | | QtMultimedia is supported in Qt 5.2 and should be built by default, so it has been removed from the module "skip list" Task-number: QTBUG-35039 Change-Id: Id43f997251bf392b7f6c0166ee06b7364ce30b8e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Allow for QtDeclarative and QtQml to co-exist at run-timeSimon Hausmann2013-11-252-3/+9
| | | | | | | | | | | | | | | | | | | | | | | Qml has a bunch of hooks in QObject, that are callbacks as function pointers when things happen in QObject. QtDeclarative (Qml1) only needs one callback, for object destruction. In preparation for allowing both run-times to co-exist, this patch forks the callback, keeping the "default" variant for QtQml and having a *_qml1 variant for QtDeclarative. QtQml continues to set the callback variable for the default and QtDeclarative will set the _qml1 variant. It is however a limitation that a QObject instance can only be exposed to _one_ engine at a time, and it is not possible to make a transfer. Double exposure will result in crashes. This patch alone is not sufficient to fix the bug, the QQmlData/QDeclarativeData structures in Qml1 and Qml2 need to be extended to allow distinction at run-time. Task-number: QTBUG-35006 Change-Id: I3bac023873b5656a8a4f117fe816bafcda77b67d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* iOS: decouple QIOSWindow and QIOSInputContextRichard Moe Gustavsen2013-11-243-5/+5
| | | | | Change-Id: I85dda6fc0c6d2d11709b8bcdc0de6c0cef42d40f Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* fix handling of \\ in replacement string in s/// cmd of built-in sedOswald Buddenhagen2013-11-231-0/+1
| | | | | | | | | | QString::replace() has no way of escaping capture group references, so simply disarm double backslashes. of course this is broken, but we'd need to reimplement it from scratch to fix it properly. "corner case" ... Change-Id: I357fbfd22c9c4a68809e5af6efad1de3a95706b5 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fixed assert in Windows key handlingOliver Wolff2013-11-231-2/+6
| | | | | | | | | | | | | | | | | | | | Certain key sequences (like press alt, press left, release left, release alt) can cause an assert in qwindowskeymapper. This behavior was introduced in change I4f7709a90906b03f4504deea1ff5c361e9f94b3f (Fix virtual key mapping on MS Windows). The place that seems to cause the new behavior is changing the bitmask for obtaining the event's scancode. With the changed bitmask releasing the alt key in the given key sequence causes the WM_KEYUP event to trigger a WM_CHAR event which should not happen there. To be honest I don't know how having the extended bit inside the scancode fixes the behavior but it seems to do and I could not find another place which might cause the breakage. Task-number: QTBUG-35005 Change-Id: Ia18c2681ea311196441a5cd15017e220ac095674 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* fix handling of | in s/// commands of built-in sedOswald Buddenhagen2013-11-231-1/+1
| | | | | Change-Id: I139d007d68fb0aed4d9fbe57a14d1ede81ba40d8 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* adequately shell-escape generated sed commandsOswald Buddenhagen2013-11-232-1/+12
| | | | | Change-Id: I39c8c4ab3da69bd21beace56f5cf3070301ac015 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Prepare for printing support.BogDan Vatra2013-11-231-1/+0
| | | | | | | | There is no real printing support though, it just prepares the land for bringing printing support for API-19+. Change-Id: Iabf78499f8fe1e4d2527e339cee5746acb8f3b3f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Add PPS configure checkAndreas Holzammer2013-11-235-5/+97
| | | | | | | | | | | Plain QNX 6.5.0 does not have a libpps, the new QNX has a libpps and BlackBerry has it as well. So we need a configure check to not open another mkspec for this platform. This fixes the plain QNX 6.5.0 build. Change-Id: Id4b3876f2385bcb5f3df426945532e7e26133f24 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* QNX: Only link libclipboard when building with clipboard supportFrank Osterfeld2013-11-231-1/+2
| | | | | | | | | | | | | In QNX 6.6, libclipboard isn't part of the base SDP, and QT_NO_CLIPBOARD is set unconditionally on plain QNX anyway. The clipboard-based implementation isn't compiled when QT_NO_CLIPBOARD is set, so only try to link libclipboard when actually building with clipboard support (BB10). Change-Id: I54eb4fadb6bf239a83884796f5758cb79a5677ef Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
* BlackBerry: Fixed root window size, continuedArvid Nilsson2013-11-231-3/+6
| | | | | | | | | | | | | | | | The previous patch removed a call to setGeometry, and now only calls setGeometryHelper. This means the screen window will be resized, but Qt won't know about our new window size. The scene graph of a QtQuick2 application would layout and render to the wrong target size. Fixed by adding a call to QWindowSystemInterface::handleGeometryChange if we decide to use a different geometry than suggested by the window. Task-number: QTBUG-34930 Change-Id: Ie91c2edc45c47f5bf1d45aed981b969fcc3f40dd Reviewed-by: Bernd Weimer <bweimer@blackberry.com> Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Avoid incorrect warning when painting onto a QImageLaszlo Agocs2013-11-231-4/+3
| | | | | | | | | | | | | | | | | | | Change Ia8ef48f3 introduced a regression: Trying to paint onto a QImage, QPicture or QPrinter from outside the main thread incorrectly shows a warning saying that it is not supported. The patch was incorrect because 'extraCondition' was used in the non-default branches of the switch and thus not passing extraCondition==true caused the message appear even when it shouldn't have. Let's just remove the extraCondition parameter altogether since it is not used in practice anyway. Change-Id: Id2e56c585d1f1013f24942cbcd53305fbb66aeba Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* iOS: Re-enable kEAGLDrawablePropertyRetainedBackingTor Arne Vestbø2013-11-221-1/+1
| | | | | | | | | | Having it disabled caused issues with our backing-store implementation, which assumes that the backing store is retained, but for us is backed by a GL context. Change-Id: I18d05e226c7cf949adcd3b71801ffd845fa6d83d Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: Deliver resize events synchronously after setGeometry for QtWidgetsTor Arne Vestbø2013-11-221-0/+3
| | | | | | | | | | | | | | | | | QWidget::show_sys() assumes synchronous geometry behavior by trying to resize both the platform window and the backing store if the widget's view of what the geometry is doesn't match the platform window's. The problem with that is that it's the widget which is not up to date, not the window, as the widget is not waiting for resize events before applying any resize logic. Instead of trying to fix widgets, we throw our hands in the air and give QtWidgets the synchronous behavior it assumes from the platform. Change-Id: I1b9241b9b13df661dc7f41c4cb8ecd02f5572256 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: Allow QBackingStore::flush() without beginPaint()Tor Arne Vestbø2013-11-221-3/+5
| | | | | | | | | The QBackingStore API doesn't require clients to precede flush() with a beginPaint() call, but our backingstore is backed by a GL context, so it's up to us to ensure it's current before swapping. Change-Id: Ia6119bf0e835448b1fd383d933df6f88fa4f298a Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* iOS: Fix build against iOS 5 SDK and auto-rotation on iOS 5Tor Arne Vestbø2013-11-221-0/+10
| | | | | Change-Id: I3acc2d3780a9440bedf48db3fed0046b06300b9e Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: Use separate release pool for qt_ios_version()Tor Arne Vestbø2013-11-221-0/+5
| | | | | | | | QSysInfo::MacintoshVersion is initialized before the main thread's release pool has been set up, so we have to wrap the UIKit usage in our own pool. Change-Id: I80e2c068339e0251f38ecf55fcfb764594eb3ad7 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: Change show() to imply maximize, and showFullScreen() to hide status barTor Arne Vestbø2013-11-228-6/+109
| | | | | | | | | | | | Matches the Android behavior, and gives an easy and predictable way to show true fullscreen windows that is similar to how one would do it on a desktop platform. We keep the statusbar visibility in sync with the window state of the active window. Change-Id: Ia4b99e03f83e19f9ef56cc99b9d477cc6da4c734 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: Take position of root viewcontroller into account for geometry changesTor Arne Vestbø2013-11-221-4/+26
| | | | | | | | | | | | When setting the geometry on our UIView, or when reporting it back to Qt in our layoutSubviews callback, we need to take into account that the root viewcontroller may be not be positioned at 0,0 in the screen's window. Even when using the wantsFullScreenLayout property of the view controller this may be the case on iOS7 when the in-call status-bar is visible. Change-Id: I0ca706c1c9aff8ba4f3b4ccdf83dba713bd5c9c2 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: Fix when and how we send geometry and expose eventsTor Arne Vestbø2013-11-221-13/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Geometry changes may come from Qt itself, or spontaneously from the windowing system. In both cases we deal with them through the layoutSubviews callback, which we now ensure gets called after we set a new geometry on the UIView frame, by using the setNeedsLayout message. We take care to persist the requested geometry from Qt immediately in our setGeometry() function, so that subsequent calls to QWindow::geometry() will report back the requested geometry. Clients can however not rely on this geometry until they've received a corresponding resize event, which we trigger from layoutSubviews. Since the new geometry reported in layoutSubviews may be different from what the user requested, we ensure to pass on both the new and the "old" geometry, so that Qt will send the appropriate resize and move events. Instead of building expose events on top of the existing layout mechanism provided by iOS, we hook into the more logical point, which is the display-phase. Since a EAGL view normally doesn't need to "display" anything this takes a few overrides on UIView. Once we have the hooks we need, we can distinguish between a QWindow backing needing layout, and needing displaying. Finally, we flush both the resize and expose events, as that's what iOS expects of us when asking us to layout or display. The result is that Qt is able to synchronously resize subwindows and prepare new GL rendering for the next frame. Change-Id: I4c03e3db3fe886163284ba1a342699e217e88cbb Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>