When switching between fields with specific input types oxide briefly reports that they're freetext

Bug #1381083 reported by Michael Sheldon
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Oxide
Fix Released
Medium
Olivier Tilloy
ubuntu-keyboard
Invalid
Undecided
Unassigned

Bug Description

When oxide switches between two input fields that have specific input types associated with them (e.g. two email fields) it briefly reports that they are default free text fields via the input method extension. This results in the keyboard briefly displaying the wrong layout.

To reproduce:

 1) Visit http://mikeasoft.com/~mike/oxide-input.html

 2) Tap first text field, keyboard should appear and show email layout

 3) Tap second text field

Expected result:

Keyboard remains in email layout

Actual result:

Keyboard briefly switches to default layout and then back to email layout.

Tags: osk

Related branches

affects: ubuntu-keyboard → oxide
description: updated
Olivier Tilloy (osomon)
Changed in oxide:
assignee: nobody → Olivier Tilloy (osomon)
Revision history for this message
Olivier Tilloy (osomon) wrote :

I verified (with http://mikeasoft.com/~mike/oxide-input.html) that this doesn’t happen with chrome on android.

Changed in oxide:
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
Olivier Tilloy (osomon) wrote :

When switching focus from one field to the other on the example page, this is the sequence of oxide events I’m observing:

    WebView::OnTextInputStateChanged() : text input type changes from EMAIL to NONE
    WebView::OnFocusedNodeChanged() : focused field changes
    WebView::OnTextInputStateChanged() : text input type changes back from NONE to EMAIL

which explains the brief layout change.

Since chrome on android behaves differently, there must be a way to be cleverer about OnTextInputStateChanged events.

Olivier Tilloy (osomon)
Changed in oxide:
status: Confirmed → In Progress
Revision history for this message
Olivier Tilloy (osomon) wrote :

I have submitted a fix for oxide which prevents calling QInputMethod::update() with Qt::ImHints if the current input method type is none (see http://bazaar.launchpad.net/~osomon/oxide/osk-flicker-fix/revision/798).

However, even with that fix, I’m still seeing the OSK layout briefly reset to the default one. I’m wondering if the OSK might be resetting its layout when requested to show (even if already visible)? Adding an ubuntu-keyboard task for further investigation.

Olivier Tilloy (osomon)
tags: added: osk
Olivier Tilloy (osomon)
Changed in oxide:
status: In Progress → Fix Released
Changed in ubuntu-keyboard:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.