summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios
Commit message (Collapse)AuthorAgeFilesLines
* iOS: Be more careful when hiding the keyboard upon enterRichard Moe Gustavsen2014-05-231-3/+3
| | | | | | | | | | | | | | | | | | A typical pattern in an application is to listen for "enter" in a line edit and transfer focus to the next edit in the focus chain. This would currently not work on iOS since we would force the keyboard down after delivering the KeyPress/release events, effectively overriding any focus handling done by the app. This patch will hide the keyboard _before_ sending the events, so that we don't override focus handling done by the app. By also hiding the keyboard using QInputMethod, the hiding will also be delayed a bit (in QIOSInputContext) to catch subsequent hide/show calls. Change-Id: Ic19511d494a55d1bda963ed9bc7185d63b51bc03 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: don't report negative selection ranges for backspaceRichard Moe Gustavsen2014-05-211-1/+1
| | | | | | | | | | | | | | | | | Qt sometimes report that the selection anchor is placed before the cursor when querying it for current selection. We need to accomodate for this when reporting current selection back to iOS, since it expects the range to always be positive. When pressing backspace, iOS will select the letter that should be deleted, and then call "deleteBackwards". If holding down backspace for a while, it will start selecting whole words instead. Since we reported negative ranges during this process, it caused artifacts and stray letters to be drawn. Task-number: QTBUG-39073 Change-Id: Ida9518307adce915adf49160b541a2f88637a0da Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: Gracefully handle cancelling of subset of active touchesTor Arne Vestbø2014-05-081-11/+25
| | | | | | | | | | | | | | | | | | | | | | | When applying the five-finger pinch gesture, we get a touchesCancelled callback with all five touch points, but the pinch gesture ends when the second to last finger is released from the screen. The last finger will not emit any more touch events, _but_, will contribute to starting another pinch gesture. That second pinch gesture will _not_ trigger a touchesCancelled event when starting, but as each finger is released, and we may get touchesMoved events for the remaining fingers. The event property 'allTouches' contains one less touch point than it should, so this behavior is likely a bug in the iOS system gesture recognizer, but have to take it into account when maintaining the Qt touch state. We do this by assuming that there are no cases where a sub-set of the active touch events are intentionally cancelled, and always clear the list of active touches. Task-number: QTBUG-37304 Change-Id: Icee79978508ecbc6854c0fb55d2da48b99d92f96 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2014-05-033-5/+29
|\ | | | | | | | | | | | | Manually fixed up: isES -> isOpenGLES src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp Change-Id: I57d2ef26c3d4a7b40ace09f4e8560b7686650ea5
| * iOS: Send updated expose events on application background/foregroundingTor Arne Vestbø2014-04-282-5/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an application has background processing enabled, for example for communicating with an external accessory or getting location updates, it might trigger code that does UI updates, which will kill the app as doing UI in the background is not allowed on iOS. We guard against this by propagating the backgrounding as updated expose events with a non-exposed region and isExposed() returning false. This means clients who correctly use QWindow::isExposed() to guard their drawing code (including the scene-graph), will live to see another day. Task-number: QTBUG-36956 Change-Id: Ib708394d33093affe68c9f2c7abde7e54be5ec74 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
| * iOS: Send application state changes synchronouslyTor Arne Vestbø2014-04-281-0/+1
| | | | | | | | | | | | | | | | The user might have a limited time to react when the application is suspended, so we need to send the event as soon as possible. Change-Id: Ib6c342f5426cf15e36ba4ef57edf30878f86d1c9 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* | Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2014-05-011-0/+1
|\| | | | | | | | | | | This merge adds the opengl rename. Change-Id: I84ea0b6abee9780ebb2cf3f64ab9e3fdf2acab3e
| * deprecate import_qpa_plugin and qpa_minimal_pluginOswald Buddenhagen2014-04-241-0/+1
| | | | | | | | | | | | | | | | they have been fully superseded by 4255ba40ab073afcf2a095b135883612859af4c2. Change-Id: If7ac14c8b7d3cf00fb0cb916036b62eb86c9cee0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | iOS: scroll screen after hiding keyboard programaticallyRichard Moe Gustavsen2014-04-291-0/+7
|/ | | | | | | | | | | When the keyboard is told to hide, we resign first responder. If this is done programatically on touch press, this will make the "hide keyboard gesture" receive a touchesCancelled instead of a touchesEnded. Since we didn't catch this from before, the gesture was left in a mixed state causing the screen not to scroll when later showing the keyboard. Change-Id: I70ed59710128a912097cd5bfbdd8f49b20b7934c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: fix crash in auto correction when using unknown font familyRichard Moe Gustavsen2014-04-161-0/+2
| | | | | | | | | | | | If QFont reports a family name that cannot be used to instanciate a UIFont, we end up trying to insert a nil object to an NSDictionary. This will raise an exception. This patch will check that we have a valid UIFont before using it. Task-number: QTBUG-38018 Change-Id: Id8a2e4afea8c915ff43a7e4680304ba19328f9c2 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* iOS: Share default-FBO for windows between contexts in a share-groupTor Arne Vestbø2014-03-311-4/+9
| | | | | | | | | | | | | | | The current implementation of QOpenGLContext sharing assumes that the contexts form a tree and that leaf-nodes are destroyed before their parents. We build on this assumption and keep track of the default FBOs for windows in the root context of the tree. This allows two shared contexts to both makeCurrent() on the same window surface without resulting in two FBOs being set up (which doesn't work on iOS due to the CEAGLLayer already being tied to another render-buffer). Change-Id: Ib9f8c597effe488480fe99e10846be22c257f490 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* iOS: don't scroll towards cursor during touch pressRichard Moe Gustavsen2014-03-291-0/+19
| | | | | | | | | | While the user is touching the screen, postpone scrolling until we get a touch release. Scrolling in the middle of a touch sequence will change the coordinates under the touch, and cause some artefacts. Change-Id: I02ef420abaab780a459f014d4b4cfb75c8fbb725 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* iOS: stop keyboard from reopending after the gesture finishesRichard Moe Gustavsen2014-03-291-2/+38
| | | | | | | | | | | | | | | | | | | On iOS we have set the style hint 'SetFocusOnTouchRelease'. This is in conflict with the 'hide keyboard' gesture, since a control can try to regain focus (and open the keyboard) if the gesture ends on top of it. So we need some extra work-around code to prevent this from happening. The correct way would probably be to cancel the touch sequence once the gesture triggers, but this is not well implemented in Qt yet, especially in combination with widgets and mouse synthesis. Since usage of the gesture behaves really bad in some cases (e.g if using the TextEdit example) we need to apply this for now. Change-Id: Ib3327c0bd94d722b4c4793bc6d152d6d19810e4b Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: animate screen from current in-flight geometryRichard Moe Gustavsen2014-03-291-1/+1
| | | | | | | | | | | | If you show/hide the keyboard quickly while we scroll the screen, the scroll will appear to jump. The reason is that the screen animation will start from where the model layer is at, and not the presentation layer. So specify that the animation should start from the current state of the presentation layer. Change-Id: I3db87ab11aab583eb50784b0c0a03a9a07c8b822 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* iOS: keep keyboard rect in syncRichard Moe Gustavsen2014-03-291-3/+0
| | | | | | | | | | | | | | If you resign/become first responder several times while the keyboard is animating (e.g changing focus between focus objects while the keyboard is animating), iOS will short-cut the whole animation, and jump directly to keyboard end-state. For that reason, we always need to handle keyboardRectChanged, and not bail out early. This is fine, since the guard we had was really only meant for keyboardWillShow/Hide in the first place. Change-Id: I3a3d1e7061962286c538360029ed38410dc0f347 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* iOS: Add support for offscreen GL surfaces without using hidden windowsTor Arne Vestbø2014-03-283-0/+24
| | | | | | | | | | | | | | There's no need to create a hidden window to get a surface on iOS, as the platform supports FBOs. Note that defaultFramebufferObject() returns 0 in the case of offscreen surfaces, which is technically not a valid FBO on iOS due to the indirect rendering, but binding and rendering to the zero-FBO seems to be no-ops, so clients may safely call eg glBindFramebuffer(GL_FRAMEBUFFER, ctx->defaultFramebufferObject()) to restore the default FBO after drawing to its own FBO. Change-Id: I2e67f5d69c0698562052f5ac1df0bbfaa3337148 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* iOS: Check FBO status and return failure from QIOSContext::makeCurrent()Tor Arne Vestbø2014-03-272-6/+36
| | | | | | | | | | | | | | The Khronos documentation for glCheckFramebufferStatus recommends calling the function to see if the framebuffer is complete prior to rendering. We now give more info to clients that call makeCurrent(), by storing the state of the default FBO and returning that, instead of always returning true and leaving the clients vulnerable to calling OpenGL functions on a non-complete FBO. Change-Id: Ia99c21f811ac799b350f07e73b2ae4b173d71120 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* iOS: send a Qt::Key_Return when the user hits done/enterRichard Moe Gustavsen2014-03-211-2/+11
| | | | | | | | | | We need to send key events when the user hits enter, otherwise there is no way to know when the user has 'confirmed' the text he wrote. This is on par with how it's done for the Android port. Change-Id: I585d4198de24b0d251e5e0dd2956ce81b6483f82 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: implement 'close keyboard' gestureRichard Moe Gustavsen2014-03-211-3/+27
| | | | | | | | | | | | | | | | | | | | | | Before this patch there were no way for the user to hide the keyboard on iPhone for multi-line edit fields unless the app had a separate button added for it. And even that would be problematic since we scroll the screen (and perhaps the button) to track the cursor. This patch implements a gesture that resembles the 'hide keyboard' gesture that UIScrollView implements on iOS 7. Note that if you start the gesture inside the edit field, you will start selecting text as well. This will also cause the cursor to move and the screen to scroll. After some testing and failing, it seems like we need to live with such artifacts until we do get around to do the only sensible thing; fix up how we do text selection on touch platforms. Working around it becomes just to messy. Change-Id: I1c0d9c88ff1f5430587a49591f165b9708e5dc60 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Workaround for misbehaving [UIScreen screens] in iOS 7.1Eduard Veleba2014-03-191-1/+3
| | | | | | | | | | | | On iOS 7.1 [UIScreen screens] sometimes returns empty NSArray which is against documentation and causes immediate application crash. This workaround uses [UIScreen mainScreen] in case [UIScreen screens] returns empty NSArray. Task-number: QTBUG-37601 Change-Id: I9b341b9ca788b5fc81804489d2e0a3af84207168 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: update keyboard rectangle when scrolling the screenRichard Moe Gustavsen2014-03-151-8/+24
| | | | | | | | | | When we scroll, the keyboard will change position relative to QScreen, even if it appears to stay put. For that reason we also need to update the keyboard rect after doing a scroll. Change-Id: I9bda2ab5b5e4970f488d3e69e44cf58e273f8fcd Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: implement clipboardRichard Moe Gustavsen2014-03-065-2/+325
| | | | | | | | This will implement support for copy/paste operations inside, and between, applications. Change-Id: I50031b89bdb07f106950dc90fb8b1accbd1191bb Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Re-enable drag-and-drop on iOS after bugfixes to QBasicDrag and friendsTor Arne Vestbø2014-03-061-2/+0
| | | | | Change-Id: I0fd4e5e8d561826841cc78b26cd524ba01a8b689 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* iOS: prevent crash on iOS 5Richard Moe Gustavsen2014-03-041-3/+3
| | | | | | | | | | For some reason, the [] access into NSDictionary causes a crash on iOS 5. So instead use the API as listed in the documentation: objectForKey. Task-number: QTBUG-36532 Change-Id: I19fdf0f4ba1aebaf9477e2bd45040c389923605d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: correctly report Landscape or InvertedLandscape screen orientation.Yoann Lopes2014-02-141-4/+4
| | | | | | | | | | | | The Qt documentation says that PortraitOrientation is rotated 90 degrees clockwise relative to LandscapeOrientation. This means that the home button should be on the right when held in LandscapeOrientation, therefore, Qt::LandscapeOrientation == UIDeviceOrientationLandscapeLeft. Without this patch, all QScreen mapping functions are broken. Change-Id: I2c570cd0307b7fbd59c749d6574dcb258790cfbc Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: only activate top-level windowsRichard Moe Gustavsen2014-02-141-9/+12
| | | | | | | | | | | | | | | From before we would activate all QWindows that the user tapped on, or setVisible were called on. This is wrong since a QWindow does not have to be a top-level window. For a non-alien widget application this would mean that we would send activation events for all widgets that the user tapped on all the time. With this patch we do some extra checking before we tell a QWindow to activate. Change-Id: I1afe97e5384c36c67fee0bbd070d880bba7528a1 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: activate window on touchesBeganRichard Moe Gustavsen2014-02-141-8/+3
| | | | | | | | | | | | | | We need to activate a window on touchesBegan instead of touchesEnded. The reason we used to do this on touchesEnded was to delay activating a window in case the user started e.g a flick. But delaying the activation can cause problems if the app activates a different window on press. We will then cancel this out on release since we then raise the pressed window instead. This is e.g typical when opening popups, and will cause focus to not be restored properly when later closing the popup again. Change-Id: I709b2f2e2633c9dc85c2761b0b176cd23c2f6b36 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: don't store reference to focus objectRichard Moe Gustavsen2014-02-142-5/+1
| | | | | | | | | | | Sometimes focus object is updated after we get a callback that the cursor rectangle has changed. And there is no reason to keep a local reference to it. Since we also send events to the qApp->focusObject from UIView_textInput, we now end up more consistent. Change-Id: I3976175aae4e3f346be9bc5b771ac0fdefc03ae6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: return correct uiview for IM rectanglesRichard Moe Gustavsen2014-02-061-0/+12
| | | | | | | | | | | UITextView has a property for specifying which UIView the CGRects you return should be aligned with. This makes a difference for widgets when not using alien, since then the view that draws the text will usually not be the same as the view that backs the top level QWindow. Change-Id: I240d63c98544c39308cd91465ee84351e7d7d1f4 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: be more specific about IM callbacks to iOSRichard Moe Gustavsen2014-02-061-11/+16
| | | | | | | | | No need to call textWillChange all the time if the text is really not changing. And report that selectionWillChange when Qt reports that it has changed. Change-Id: I7bd9f540cd9302c37888926a6152b803cc871ccb Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: return styling hints for text correction pop-upsRichard Moe Gustavsen2014-02-061-0/+18
| | | | | | | | | | By returning the font used at the cursor position, the correction pop-up will be resized to match the point size, and the text marking will get correct height. Change-Id: I362579b793794835323bb9ceb5ddb4655526f392 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: send backspace events directlyRichard Moe Gustavsen2014-02-061-5/+7
| | | | | | | | | | | | | For legacy reasons, we send IM events to the focus object directly instead of through QPA. To be consistent, and to ensure that IM and key events end up at the same object in the same order, we need to send key events directly to the focus object as well. We should consider fixing up QPA to support IM events better, but this will do for now. Change-Id: I8a18a1f7b7295e5c64a109fb98eee928fae06a0f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: send IM events instead of fake key eventsRichard Moe Gustavsen2014-02-061-12/+9
| | | | | | | | | | | | | | | Sending faked key events is not such a good idea, since: 1. We don't get key events on iOS, but text events 2. We cannot determine correct key code or modifiers, nor do we want to fake modifer press/release etc. 3. Android uses IM for all text input So it seems that the correct solution is to avoid sending key events in the first place. This will also bring the iOS port on par with the Android port. Change-Id: Ibac1d335184e62eb4185cfd4218a0ec73dffb2c4 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: add spell checking supportRichard Moe Gustavsen2014-02-062-0/+3
| | | | | | | | | We don't have a separate enum just for spell checking in Qt, but Qt::ImhNoPredicitiveText should cover it. So use it to enable/disable both spell checking and auto completion. Change-Id: I7ad661cb7d720988f13bc1ed940573006c0ce229 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: implement support for input methodsRichard Moe Gustavsen2014-02-065-17/+420
| | | | | | | | This change will add support for input methods, word completion, spell checking and related functionality. Change-Id: I41d4de1cab521c679d414cfc7c1a2d0f9c1fcaaf Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: move key/text input into separate categoryRichard Moe Gustavsen2014-02-064-104/+156
| | | | | Change-Id: I62c588226b307d51f7f88b1cc0c1e00c0d0f14c6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: move QUIView interface decl into separate header fileRichard Moe Gustavsen2014-02-063-26/+71
| | | | | Change-Id: Idc90d85859229d49b1deecc2472b330f0adb1ef8 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* iOS: change logic for when to scroll screenRichard Moe Gustavsen2014-02-062-50/+76
| | | | | | | | | | | | | | | | | | | The current implementation will stop scrolling the screen to reveal the cursor if the input item changes transformation. This to not interfere with flicking etc. This strategy turns out to be too strict, as some qml apps/games can easily have small animations applied (e.g qtquick cork board example) that moves or scales the text areas (or their parents) upon focus. So instead of relying on input item transformation, we now scroll whenever the cursor changes position inside the input item (in addition to orientation changes etc). We also refactor scrollRootView into two functions, since we in many cases know if the keyboard should scroll up or down already when the call is made. Change-Id: If5bf349139eed69823cfc8986bb4b32c93bdf91b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Add QWindowPrivate::topLevelWindow() helper functionTor Arne Vestbø2014-01-303-22/+5
| | | | | | | | Might be useful to expose to QWindow in 5.3, but for now it's private so it can be used by platform plugins. Change-Id: Iad96d7e249a7b85695668f8d7e8918164ec67442 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* iOS: Remove unused fileTor Arne Vestbø2014-01-172-72/+0
| | | | | Change-Id: If082be4b5c50cd5e1d5660bbe26136b9a0ee0352 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* iOS: Use in-place string renaming to rename main() instead of ldTor Arne Vestbø2014-01-061-2/+2
| | | | | | | | | | | | | | | Processing the object file with ld strips away debug information for the main() function, resulting in the debugger not being able to break on specific lines of the function. It also causes issues when externing sybols in main's object file. We revert back to the approach of using the strings in-line in the object file (which is why we keep the name the same length, 'qtmn'). Task-number: QTBUG-35553 Change-Id: I8b0acee36f48ecfefa2e4fd008a842365713d985 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* iOS: Fix C++11 buildTor Arne Vestbø2013-12-211-1/+1
| | | | | Change-Id: Ib7dc8dcbeca7e85d97b8c7fb04d2cf42e5245298 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS has native windows but not window managementShawn Rutledge2013-12-161-0/+2
| | | | | | | | This will tell QtQuick.Dialogs not to use native windows for dialogs. Change-Id: Ie2e5878b84a9597e1f730d2cb1ebe2f59be6bc75 Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* iOS: Fix failing assert in QUIView displayLayer()Tor Arne Vestbø2013-12-111-3/+4
| | | | | | | | | | | | | In layoutSubviews we take the root viewcontroller position into account when determening the new QWindow geometry, but we were missing this logic in displayLayer, and would assert if the in-call statusbar was visible. Since we don't really need the position of the window in displayLayer, we change the assert to only check the size of the exposed area, which is independent of the position of the root viewcontroller. Change-Id: I774b8d9b075518e729f488a789b3a9e584c3f4d3 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-12-058-25/+29
|\ | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/macx-ios-clang/features/default_post.prf tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp Change-Id: Iaba97eed2272bccf54289640b8197d40e22f7bf5
| * iOS: move infoPlistValue to qiosglobalRichard Moe Gustavsen2013-12-043-7/+8
| | | | | | | | | | Change-Id: If237f08683290105413dc47923e23a496765bb22 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * iOS: don't show statusbar if hidden from Info.plistRichard Moe Gustavsen2013-12-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently there is no way to always hide the statusbar on iOS other than showing a window in fullscreen. This patch will check if the statusbar is (initially) hidden from the Info.plist, and respect that in the application. SubAttack is an example of an app that (because of styling issues with MainWindow margins) manually sets the geometry larger than fullsreen, and calls showNormal(). In that case we still want the statusbar to be hidden. Change-Id: Ia365d14971978360d0b39621ff0f8f82f74b57e2 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * iOS: Handle statusbar changes to child windowsTor Arne Vestbø2013-12-043-6/+6
| | | | | | | | | | | | | | | | | | Going through the platform window failed when the parent wasn't created yet. We can still get the window state of an yet-to-be-created top level window. Change-Id: Iaa61ddc50df037ac0bd2fd0884884c2bfce1dd9a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * iOS: fix assert when using QOffscreenSurfaceRichard Moe Gustavsen2013-12-041-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt defaults to creating a QWindow as offscreen surface if QPlatformIntegration::createPlatformOffscreenSurface returns 0. Using an offscreen surface is often done in a background thread, which is problematic, since then a QIOSWindow will also be created in a background thread. According to Apple docs, working with a UIView from other threads than the main thread should not be done. In our case, we instead hit an assert in QApplication that checks for the same. As a quick fix for Qt 5.2, we remove the offending call that causes the assert, since we anyway will call the same function lazily when becoming first responder. Task-number: QTBUG-35378 Change-Id: Id35462f99783a9748c688b163f6497de9bfff73e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * iOS: Disable drag and drop completely instead of enabling simple d'n'dTor Arne Vestbø2013-12-041-0/+2
| | | | | | | | | | | | | | | | | | The drag and drop event filters do not play nicely with touch events or virtual keyboards. Task-number: QTBUG-35348 Change-Id: Id4d079ae72882f48750d394f13e10700d60e4532 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>