ubports / ubuntu-touch

Ubuntu Touch's issue inbox is now migrated to GitLab.
https://gitlab.com/ubports/ubuntu-touch
1.28k stars 110 forks source link

OSK is too small on Pro 5 in landscape mode #1083

Open TartanSpartan opened 5 years ago

TartanSpartan commented 5 years ago

Steps to reproduce

Pull up the OSK to enter text in landscape mode.

Expected behaviour

The OSK should have nice big user-friendly buttons.

Actual behaviour

It doesn't, and hasn't since IIRC OTA-4 or so. Arale shows the correct behaviour, both in landscape and portrait mode. But turbo only shows it in portrait. This problem, combined with other bugs such as https://github.com/ubports/ubuntu-touch/issues/1030 and https://github.com/ubports/ubuntu-touch/issues/1038, makes typing in landscape more of a pain than it should be.

Logfiles and additional information

I can follow up with screenshots next time I'm at my laptop.

kugiigi commented 5 years ago

This is also true on Nexus 7 2013 on its default scaling. I found out that the height of OSK was reduced for tablets/desktops in a commit.

@TartanSpartan Can you perhaps post a screenshot? I'm thinking maybe the PRO 5 is considered as a tablet based on its width/height in grid unit.

screenshot20190603_204940290 screenshot20190603_205024235

TartanSpartan commented 5 years ago

I will post a screenshot indeed (better late than never!). What you say makes sense. Just looking at the N7's screenshot, the buttons indeed appear about proportionately the same size as on my Pro 5. I would also confirm this on my M10, however I have it locked on OTA3/Vivid for the time being so the smaller keys for tablet do not apply for that version.

photo_2019-06-04_14-41-32 (2)

Here we see the buttons in portrait are nice and chunky- nothing wrong there.

photo_2019-06-04_14-41-32

Here we see the buttons in landscape are too small, especially for people with big fingers.

kugiigi commented 5 years ago

That definitely looks like the screen percentage for tablets. Phones are set to 49% on landscape while tablets are set to 34%. Tablets are identified when width >= units.gu(90) which I assume PRO 5 passes.

UniversalSuperBox commented 5 years ago

Aha, that's a really good find. Unity8 also has a configuration identifier for tablets set in device.conf or DeviceConfiguration.qml (in the case of older devices). This is something I need to write some documentation on. This property is stored as usageScenario by the OrientedShell.

Does the keyboard do its own determination of whether it's on a phone or tablet, @kugiigi?

kugiigi commented 5 years ago

Yes, it has its own detection logic which is actually too simple to cover many scenarios. The logic is located here (tablet - booelan property of fulllScreenItem) https://github.com/ubports/keyboard-component/blob/xenial/qml/Keyboard.qml

UniversalSuperBox commented 5 years ago

Alright, all of the device detection and its related configuration files can be found in deviceconfigparser.cpp and DeviceConfiguration.qml within Unity8. @dobey, do you think it would be sound to split this off into its own little project and package so the logic can be shared? Maybe a dbus API?