Blank left panel header in gallery after resizing AdaptivePageLayout from two panels to one and back

Bug #1556860 reported by Andrea Bernabei
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Canonical System Image
Fix Released
High
Zoltan Balogh
ubuntu-ui-toolkit (Ubuntu)
Fix Released
High
Tim Peeters
ubuntu-ui-toolkit (Ubuntu RTM)
Fix Released
High
Tim Peeters

Bug Description

UITK r1888

Environment:
Windowed mode, Vivid+OverlayPPA

Steps to reproduce:
1) Launch UI Toolkit Gallery
2) Scroll left panel until the header animates out of screen
3) Resize window so that only the left panel is shown
4) Resize window until it shows both left and right panels

Expected Outcome:
The Header comes back into view

Actual Outcome:
Header doesn't show, and its place is taken by a blank box.

Related branches

Andrea Bernabei (faenil)
description: updated
Changed in ubuntu-ui-toolkit (Ubuntu):
assignee: nobody → Tim Peeters (tpeeters)
importance: Undecided → High
Tim Peeters (tpeeters)
Changed in ubuntu-ui-toolkit (Ubuntu):
status: New → Confirmed
Tim Peeters (tpeeters)
Changed in ubuntu-ui-toolkit (Ubuntu):
status: Confirmed → In Progress
Tim Peeters (tpeeters)
Changed in ubuntu-ui-toolkit (Ubuntu):
status: In Progress → Confirmed
Tim Peeters (tpeeters)
Changed in ubuntu-ui-toolkit (Ubuntu):
status: Confirmed → In Progress
Revision history for this message
Tim Peeters (tpeeters) wrote :

This is not a bug in APL or header, but in the gallery. The APL currently does nothing with the PageHeader when changing the layout, the apps need to deal with that. The gallery does that by setting and unsetting the PageHeader.flickable property, but that does not automatically reset PageHeader.exposed when the flickable is set or unset.

This can be a feature that we add to the APL. We would need some UX input for that to describe what should happen exactly when changing the layout. That would be a separate bug though.

summary: - Blank left panel header after resizing AdaptivePageLayout from two
- panels to one and back
+ Blank left panel header in gallery after resizing AdaptivePageLayout
+ from two panels to one and back
Revision history for this message
Andrea Bernabei (faenil) wrote :

So, after a quick IRC chat with timp, let me recap what happens in the gallery:

1) When the layout is switched to 1 column, Gallery sets header.flickable=templateFlickable so that the header hides and shows based on user interaction with the page

2) If the user scrolls down, that hides the header (exposed = false)

3) When the layout is switched to 2 columns, Gallery sets header.flickable=null so that the header is locked when in 2 panels mode, BUT if the user has not touched the surface after 2) then the header will still have expose=false (i.e it's scrolled out of the view). Since flickable is now null, the header will not show based on user interaction, thus causing the bug.

So, we have 2 solutions here, as timp pointed out on IRC:
1) App developer sets exposed=true when he also sets flickable= null
OR
2) Header components automatically sets exposed=true when its "flickable" property is set to null, to prevent cases like the one described by this bug from happening

The latter is a behaviour change, and it is definitely useful and likely the most common usecase, but maybe there are usecases where the developer may want to have more control over what happens to the Header after the hide-and-show-based-on-interaction mechanism is disabled (by setting flickable=null)

Tim Peeters (tpeeters)
Changed in ubuntu-ui-toolkit (Ubuntu):
status: In Progress → Fix Committed
Changed in canonical-devices-system-image:
assignee: nobody → Zoltan Balogh (bzoltan)
importance: Undecided → High
milestone: none → 11
Changed in ubuntu-ui-toolkit (Ubuntu RTM):
status: New → Fix Committed
Changed in canonical-devices-system-image:
status: New → In Progress
Changed in ubuntu-ui-toolkit (Ubuntu RTM):
importance: Undecided → High
Revision history for this message
Łukasz Zemczak (sil2100) wrote :

This bug was fixed in the package ubuntu-ui-toolkit 1.3.1938+15.04.20160412 in https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/stable-phone-overlay

---------------

ubuntu-ui-toolkit (1.3.1938+15.04.20160412) vivid; urgency=medium

  [ Tim Peeters ]
  * Hide the PageStack back button when depth == 1. Fixes LP: #1565811
  * Add header subtitle. Fixes LP: #1399289
  * Reveal the header in gallery when changing the layout to two columns.
    Fixes LP: #1556860
  * Set correct colors for disabled actions in the header.
    Fixes LP: #1393485
  * Disable tst_datepicker.qml to unblock the staging.Fixes LP: #1567840
  * Prevent invisible header from setting the flickable topMargin.
    Fixes LP: #1560419, LP: #1560458, LP: #1566231.

  [ Zsombor Egri ]
  * Move MouseTouchAdaptor into UbuntuToolkit library. Fix adaptor code for
    Xenial. Fixes LP: #1561436

  [ Christian Dywan ]
  * Don't use a separate argument to distinguish touch events. If it's touch,
    it has our overloaded methods. Fixes LP: #1530802
  * Use export_qml_dir.sh in qmlapicheck and runtest Also add Usage to runtest.
    Fixes LP: #1567286.
  * Summary style error results with sections. Fixes LP: #1568804

  [ Andrea Bernabei ]
  * Mouse filter: check if mouse is inside the area on mouse moves and
    setHovered accordingly. Fixes LP: #1566378.

  [ Timo Jyrinki ]
  * Add latest changes for GLES.
  * Add back Provides: qtdeclarative5-ubuntu-ui-toolkit-plugin to resolve
    upgrade issue. Fixes LP: #1568817
  * Fix wrapper script auto-generated by Qt that incorrectly tries to execute
    itself. Fixes LP: #1560000
  * bileto_convert_to_gles: sort and add
    qml-module-ubuntu-performancemetrics-gles.install. Fixes LP: #1569217

  * Add additional Breaks as requested by archive admin.
  * Add latest changes for GLES.

  [ Zolán Balogh ]
  * Fix the UITK test plan script.

  [ CI Train Bot ]
  * Resync trunk. added: examples/ubuntu-ui-toolkit-gallery/po/nb.po

  [ Robert Park ]
  * Inline GLES packaging. added: debian/bileto_convert_to_gles
    debian/control.gles debian/rules.gles

 -- Zoltan Balogh <email address hidden> Tue, 12 Apr 2016 11:12:44 +0000

Changed in ubuntu-ui-toolkit (Ubuntu RTM):
status: Fix Committed → Fix Released
Changed in canonical-devices-system-image:
status: In Progress → Fix Committed
Tim Peeters (tpeeters)
Changed in ubuntu-ui-toolkit (Ubuntu RTM):
assignee: nobody → Tim Peeters (tpeeters)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntu-ui-toolkit - 1.3.1984+16.10.20160527.2

---------------
ubuntu-ui-toolkit (1.3.1984+16.10.20160527.2) yakkety; urgency=medium

  [ Christian Dywan ]
  * Slimmer frame for TextFields: 0.5dp. Fixes LP: #1578190.

  [ Albert Astals Cid ]
  * Add override
    The override specifier (since C++11) specifies that a virtual function
    overrides another virtual function. In a member function declaration or
    definition, override ensures that the function is virtual and is overriding
    a virtual function from the base class.

  [ Tim Peeters ]
  * Fix reference error in PullToRefreshStyle. Fixes LP: #1582843
  * Mark Tab, Tabs, TabBar, PageHeadConfiguration, PageHeadSections,
    PageHeadState, ToolbarButton, ToolbarItems as deprecated in the
    documentation. Fixes LP: #1566735, LP: #1566741.

  [ CI Train Bot ]
  * Resync trunk.

 -- Zoltan Balogh <email address hidden> Fri, 27 May 2016 07:08:44 +0000

Changed in ubuntu-ui-toolkit (Ubuntu):
status: Fix Committed → Fix Released
Changed in canonical-devices-system-image:
status: Fix Committed → 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.