Confusing event-handling behavior of buttons when used in a toolbar

Bug #1222874 reported by Daniel Beck
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu HTML5 UI SDK
Fix Released
High
Alexandre Abreu
ubuntu-html5-theme (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

The current event-handling approach for buttons and the toolbar is as followed:

- "button" has a click() method which registers a callback method for a "click" event on a button.

- "toolbar" has a touch() method which registers a callback method for a "mouseup" or a "touchend"-event on the toolbar.

However, this leads to problems then button are used in the toolbar. The following code does not work as intended:

UI.toolbar("mytoolbar).touch(function (e){
   UI.toolbar("mytoolbar).toggle(); // as recommanded by the Ubuntu Guidelines
}
UI.button("save").click(function(e){
  saveSomeData();
  e.stopImmediatePropagation() ; // prevents the event propagation to the containing toolbar
})

Since the "touch()" method registers for the "mouseup"/ "touchend" event, which happens before the "click" event, this code first toggles the toolbar, and then calls the callback method from the button.

"toolbar.prototype.touch(callback)" and "button.prototype.click(callback)" should register for the same DOM event type, i.e. eiter "mouseup"/"touchend" or "click". Also, this would allow button.prototype.click() to prevent the event propagation to the toolbar, by calling "stopPropagation()".

Tags: toolbar

Related branches

Adnane Belmadiaf (daker)
Changed in ubuntu-html5-theme:
status: New → Triaged
importance: Undecided → High
Adnane Belmadiaf (daker)
tags: added: footer
Adnane Belmadiaf (daker)
tags: added: toolbar
removed: footer
Adnane Belmadiaf (daker)
Changed in ubuntu-html5-theme:
status: Triaged → In Progress
assignee: nobody → Alexandre Abreu (abreu-alexandre)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntu-html5-theme - 0.1.2+14.04.20140404-0ubuntu1

---------------
ubuntu-html5-theme (0.1.2+14.04.20140404-0ubuntu1) trusty; urgency=low

  [ Alexandre Abreu ]
  * Connect qmlengine quit signal to app quit slot (LP: #1299563)
  * Fix issues with the toolbar buttons: make sure that we dont
    preventDefault() in all cases (even when the user tries to
    click()),. make sure that the user's intent seems like
    hiding/showing before doing so,. (LP: #1222874)

  [ Adnane Belmadiaf ]
  * Removed unused locales.json

  [ David Barth ]
  * This branch aggregates 3 branches to help resolve SASS/CSS conflicts
    on the same file: merge of fix.1286362. merge of typography-update.
    merge of the fix.gallery-dialog branch .

  [ daker ]
  * Fixed toolbar declaration (LP: #1286833)
  * Adjust the content when the keyboard appears (LP: #1296463)

  [ Ubuntu daily release ]
  * New rebuild forced

  [ Kyle Nitzsche ]
  * 1) Fix lp bug https://bugs.launchpad.net/ubuntu-html5-
    theme/+bug/1241029 2) Improve doc building as follows: * add build
    script for docs: yuidoc-build.sh.(same as in unity-webapps-qml) *
    add docslib.py, used by yuidoc-build.sh to obtain bzr branch rev and
    insert it into yuidoc.json for use during build * add
    DOCSREADMET.txt: critical info about building docs * yuidoc.json:
    add majorversion field and set it to current framework: html-14.04-
    dev. The bzr branch rev is appended to this to create useful version
    field, which is consumed by yuidoc build and inserted into built
    html. As a result, the built index.html states the framework and the
    branch bzr rev as follows: "API Docs for: HTML-14.04-dev~bzr155"
    (LP: #1287826)
 -- Ubuntu daily release <email address hidden> Fri, 04 Apr 2014 14:12:11 +0000

Changed in ubuntu-html5-theme (Ubuntu):
status: New → Fix Released
Changed in ubuntu-html5-theme:
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.