How to reproduce:
1. Look at a web page
2. Tap the URL bar, keyboard comes up and you can start typing
3. Click the hardware back button
4. You are returned to the web page (the tap you just did is undone)
What actually happens:
4. The keyboard disappears, which means that you have to tap the hardware back button *twice* to get back to where you were.
Recommendation: the activation of the URL bar should be treated as a single event in the stack, not as focus textfield + activate keyboard as two separate actions.
What if I just want to hide the keyboard so I can pan the long list and see more results? Using BACK to hide the keyboard, but not lose the current context is typical on Android.
This is the behavior XUL Fennec had. As I recall the idea was that people may want to see more awesome screen results and hiding the keyboard is not unexpected. However a quick overview of Opera, Stock 2.2 and 2.3 and Dolphin HD use Limi's behavior.
I just filed a bug to get back our "dismiss keyboard by scrolling through awesomescreen list" that currently exists on XUL versions of mobile ffx - bug 701014
Given that, maybe we could try having the back button go all the way back to the page not matter what, and see how it feels?
People should be able to see more awesomescreen results just by starting to pan the result list (opening another bug for this).
At one point, putting the keyboard away first was standard Android behavior, but it looks like this is no longer the case. Let's do it!
One amendment - In landscape, when only a field and the keyboard are visible, the back button should just take you one level up -- i.e. to the awesomescreen. I don't think this will seem inconsistent to people.
Created attachment 575173 [details] [diff] [review]
(1/2) Factor out method to cancel and finish AwesomeBar
Created attachment 575174 [details] [diff] [review]
(2/2) Back button on AwesomeBar should return to browser
Build ID: Mozilla/5.0 (Android; Linux armv7l; rv:11.0a1) Gecko/20111123 Firefox/11.0a1 Fennec/11.0a1
Device: HTC Desire Z
OS: Android 2.3