[TIMOB-15187] iOS7: focus event not triggered in window opened in a tab if another non-fullscreen window is overlaid on the tabgroup
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2013-09-16T17:59:56.000+0000 |
Affected Version/s | n/a |
Fix Version/s | 2013 Sprint 19, 2013 Sprint 19 API, Release 3.1.3, Release 3.2.0 |
Components | iOS |
Labels | ios7, qe-closed-3.1.3, regression |
Reporter | Olivier Morandi |
Assignee | Vishal Duggal |
Created | 2013-09-13T14:17:01.000+0000 |
Updated | 2013-09-17T17:35:28.000+0000 |
Description
Steps to reproduce:
run the attached app.js
click on the "open new window" button
Expected: * The "focus" event should be triggered on the newly opened window (new_window) Actual: * The "focus" event is not fired Additional notes: * The focus event is fired on win1 the first time the tabgroup is presented, but not when closing new_window * the same example works as expected when built with Ti SDK 3.1.2.GAAttachments
File | Date | Size |
---|---|---|
app.js | 2013-09-13T14:17:01.000+0000 | 889 |
am seeing this one, too
I'd like to add that if the tab-group has multiple tabs, switching between tabs correctly triggers the focus event on the window associated to the target tab. Moreover, after switching tabs at least once, returning to the scenario reported in this ticket (i.e. calling
tab1.open(new_win);
) will make the focus event to get fired on the newly opened window.Current behavior is partially correct. The tabGroup should never fire focus on any of its tabs if it itself does not have focus. Fixing that bug. The bug reported here is invalid. Test Code
Pull pending master - https://github.com/appcelerator/titanium_mobile/pull/4690 3_1_X - https://github.com/appcelerator/titanium_mobile/pull/4691
Hi Vishal, thanks. I checked out your pull request, and if I understand well, you are implying that the former tabgroup behavior was wrong. However, in the example I attached, I'd say that both the tabgroup and the overlaid window should have focus, since the overlay is not entirely covering the tabgroup: in this case, both elements can receive user input.
Verified that the current behavior is that switching between tabs does not trigger events if the tabGroup does not have focus. Titanium SDK 3.1.3.v20130916110056 Alloy 1.2.2-cr Appcelerator Studio 3.1.3.201309132456 CLI 3.1.2.GA Node 0.10.13 Leaving the JIRA open for further comments if needed.
Verified fix for Vishal's code with the following environment: SDK: 3.1.3.v20130916153052 Appcelertaor Studio: 3.1.3.201309132456 OS: OSX 10.8.4 Device: iPod touch2(iOS7) Xcode: 5.0 GM seed alloy@1.2.2-cr CLI version : 3.1.2 Focus event is being fired successfully in new window
[~omorandi] I understand you point but you have to see it from a SDK point of View. If this app was accessibility enabled, the accessibility elements in the tabGroup and contained windows would not be usable (since we specifically set them to be hidden in resignFocus). We should ideally set touch enabled to false when a window resigns focus (which we should fix in 3.2.0) The sample attached here is actually using the WindowProxy as a View Proxy. You could just have created a View Proxy and added it as a child of the Tab Group to achieve the same behavior.
Tested Vishal's code and verified focus event fired after overlay window closed. Appcelerator Studio: 3.1.3.201309132456 Titanium SDK, build: 3.1.3.v20130916153052 Mac osx 10.8.4 Mountain Lion Xcode5 alloy@1.2.2-cr CLI version : 3.1.2 Devices: iPad(iOS7 GM seed) iPhone5 iOS7(11A465)