Timer in rewritten OrientationHelper breaks keyboard orientation

Bug #1409027 reported by Michael Sheldon
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ubuntu-ui-toolkit (Ubuntu)
Fix Released
Undecided
Michael Sheldon
Vivid
New
Undecided
Unassigned

Bug Description

The rewritten OrientationHelper that was merged into trunk here: http://bazaar.launchpad.net/~ubuntu-sdk-team/ubuntu-ui-toolkit/trunk/revision/1147 introduces a new 250ms timer to prevent incorrect rotations caused by Screen.primaryOrientation and Screen.orientation being set one after another. However this prevents applications from being able to rely on the changes to the angle having been applied via the orientationAngleChanged signal (since they now only get applied 250ms after the orientation change happens).

Because the keyboard changes its orientation based on the application orientation this results in the keyboard rotating 250ms after the application has rotated, and more problematically means that the input area reported by the keyboard after the orientationAngleChanged signal is incorrect (as the orientation change hasn't actually happened).

Steps to reproduce

1) Open the browser

2) Tap the address bar

3) Rotate the phone

Expected outcome

All keys on the keyboard can be pressed

Actual outcome

Only keys in the old input area can be pressed because the new input area hasn't been reported.

Related branches

Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

I've linked a branch with a proposed fix that removes the use of the timer when the orientationAngle is being set explicitly rather than from the screen orientation/primaryOrientation, which solves the issue from the keyboard's perspective (since it follows the application orientation).

This doesn't solve the issue for any apps using automatic orientation that want to rely on the orientationAngleChanged signal as an indicator that the orientation has actually changed though.

description: updated
description: updated
description: updated
Zsombor Egri (zsombi)
Changed in ubuntu-ui-toolkit (Ubuntu):
assignee: nobody → Michael Sheldon (michael-sheldon)
status: New → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (4.3 KiB)

This bug was fixed in the package ubuntu-ui-toolkit - 1.1.1403+15.04.20150206-0ubuntu1

---------------
ubuntu-ui-toolkit (1.1.1403+15.04.20150206-0ubuntu1) vivid; urgency=medium

  [ Albert Astals Cid ]
  * Adapt to behaviour change in handling of QVariants from QML to
    C++ in Qt 5.4
  * Don't use Qt::PopupFocusReason to change the focus Even if it
    is the correct reason QtQuick is since 5.4 ignoring focus changes
    due to PopupFocusReason. Fixes LP: #1395014.
  * Fix test failure with Qt 5.4 ExpandablesColumn::test_expandedItem()
    In Qt 5.4 an alias to a null variable is correctly null instead of
    undefined like it was in 5.3, since we still want 5.3 support i'm
    conveting it to a verify with == that uses JS loose comparison to
    accept both null and undefined. Fixes LP: #1395012.

  [ Alexandre Abreu ]
  * Remove the unecessary DBUS bindingi to global address
    org.freedesktop.Application by the UriHAndler. It actually fails
    for confined apps and the uri-dispatcher anyway does not work by
    directly calling into the exposed "well known names" exposed on
    the bus as TEd explains here LP: #1342129 but by directly calling
     into the process dbus connection. Fixes LP: #1378823.

  [ Benjamin Zeller ]
  * Fix scripts to work in shadowbuild mode.
  * Shadowbuild support for ubuntu-ui-toolkit.

  [ Christian Dywan ]
  * Abort export_modules_dir.sh and ergo run_tests.sh if binaries are
    absent. Fixes LP: #1415973.
  * Asterisk are needed for cp -R.
  * Ensure adb is running (and fallback arch if dpkg-dev is missing).
    Fixes LP: #1417997.
  * Get arch for push_to_phone.sh from device and handle adb refusal.
  * Implement and unit-test i18n.(c)tag. Fixes LP: #1417031.
  * Print component creation errors in popupUtils.open.
    Fixes LP: #1418507.
  * Use correct unfocussed text field color. Fixes LP: #1396062.

  [ Daniel d'Andrada ]
  * Refactor OrientationHelper Simplify animation code and make it
    more robust. It now survives changes in Screen.primaryOrientation
    and Screen.orientation happening one right after the other.

  [ Daniel Holbach ]
  * Fix broken link to developer site.

  [ Giulio Collura ]
  * This is a bugfix for bug LP: #1341814 and bug LP: #1400297.
    Essentially we have to force the removal of the previous
    'contents' item by removing its parent. This way we ensure that
    the contents are correctly hidden, focused and removed, without
    destroying them.

  [ Loïc Molinari ]
  * Removed unused variables breaking debug builds.

  [ Michael Sheldon ]
  * Only use stableOrientationAngleTimer in the OrientationHelper when
    the orientationAngle has been set automatically.
    Fixes LP: #1409027.

  [ Niklas Wenzel ]
  * Fixes LP: #1395118

  [ nskaggs ]
  * Re-add autopilot helper documentation and update. Fixes
    LP: #1409778, LP: #1410477.

  [ Tim Peeters ]
  * Add a preview of the new list items to the UITK component gallery.
  * Add performance test for MainView.
  * Clean python code to follow pep257 standards.
  * Fix incorrect header contents width when navigating back from a
    page with a lot of actions. Fixes LP: #1408481.
  * Split up MainView in MainView and ...

Read more...

Changed in ubuntu-ui-toolkit (Ubuntu):
status: In Progress → Fix Released
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.