Thunderbird Multi-touch Gesture Support for OS X
Contents
Project Name
Bug-465257 - Thunderbird should support multi-touch gestures on OS X
Project Description
Currently Firefox has multi-touch support gestures built into it, but Thunderbird has yet to include them. The types of gestures and what they do for Thunderbird seem to be capable of being different between the two projects. But nonetheless, some of the coding is in place in Firefox and those links are on the Bugzilla page already to view those code elements. Its now a matter implementing a step by step process for implementing these gestures and testing them on my Mac Book Pro.
Here is a link to my blog site for a listing of articles that relate to this bug
Project Leader(s)
Project Contributor(s)
Name(s) of people casually working on the project, or who have contributed significant help. Include links to personal pages within wiki
Looking for Help in:
Thunderbird Add-On: As I go into this project, I am wondering if there is someone that is interested in developing add-ons for Firefox and Thunderbird, the latter being more pertinent here. As this bug gets solved, there is community interest in getting the behaviour of the actions extensible so that they can be modified after the fact.
Testing w/Glass Trackpads: Just as a precaution, testing the event tracking and behaviours off of the newest trackpads from Apple. These also have some additional multi-touch capabilities such as 4 finger swipes, but those haven't been requested from Thunderbird community at this time. The extra functionality may want to be documented and accommodated for, even if its being left along, it may be best to note in the code that it is being watched but ignored.
Performance Testing: I'm not sure at this stage, but its possible that performance testing may be required, especially if this code is in the flow of add-ons and could possibly impact performance levels across the board. I'm not sure at this stage.
Please contact me if you are interested at all in this by noting your name below on this page. I'll try and follow up quickly.
- From Mozilla and Others
- Bryan Clark (:clarkbw), my main Mozilla contact
- ...
Project Details
This is the place for technical discussions, project specs, and other details as they unfold and become more understood.
Here are a listing of some other bugs that seem to relate to this one. They've been found through bug dependency links related to the bug for this project, and currently, I'm on the cc list for these bugs to better track there activities:
- Bug 412486 - widget/event-detection support for multi-touch trackpad gestures - is a core bug
- Bug 463168 - Gestures don't work on a newly opened tab before page loads - is also a core bug
- Bug 461500 - 3 finger swipe up/down doesn't scroll unless the area under the mouse is focused - is a Firefox bug... (this one actually was a saviour for identifying the different panes in thunderbird so that scrolling would work on the pane under the mouse - beautiful!)
Project News
- Currently, I'm just getting this project started. I'm in the midst of starting a blog for my progress which will be linked at the top of this page under the project description. The blog will be linked into [Seneca's Planet page]. Currently, this there is a bug filed on Bugzilla (noted above next to the project name) which lists all sorts of progress and discussion on this issue. Some discussion elements talk about what gestures to include and their behaviours, but also links to the source code implemented on Firefox and the spot where it should be included in Thunderbird.
- My discussions have begun with Bryan W Clark (:clarkbw) who has suggested first steps which include getting 3-finger scroll functioning with the behavior to include scrolling up goes to the top of a message or thread/message list, and scrolling down goes to the bottom of that message or list. From there, other implementations can be developed.
- RELEASE 0.1 - I'm very excited to have posted my first publicly reviewable patch.
- It implements 4 swipe gesture events
- 3-finger swipe up: scrolls immediately to the top of the email message
- 3-finger swipe down: scrolls immediately to the bottom of the email message
- 3-finger swipe left: move to the previous message in the message thread
- 3-finger swipe right: moves to the next message in the message thread
- these actions were developed first as they were the ones defined in the bug as the starting point.
- there was some butchering of the gGestureSupport object, particularly the _doAction property.
- this release has also been announced on my blog at this link.
- It implements 4 swipe gesture events
- RELEASE 0.2 - Within minutes of posting, people replied
- It modifies the 2 swipe directions (Up/Down) from Release 0.2
- Scrolling based swipes now act as a mouse scroll event and grabs the specific window pane for the scroll event.
- One potential issue, with more recent changesets, the mouse scroll behaviour on the browser based window (message pane) will scroll in increments based on the height of the window as a maximum value, and not by the number of lines that are submitted to the function.
- There is a process now for identifying one pane from the other using a conditional statement that determine one window pane from the other. I will continue to look into managed functions that already may do this task.
- A Shredder preview build has been offered on the bug (and here) for running the app with these behaviours.
- I have requested further direction from the community, but until I have a response, I will try a work around to force the scroll by window height issue noted above... back to a full page Top/Bottom implementation instead.
- Here is the blog posting announcement link.
- It modifies the 2 swipe directions (Up/Down) from Release 0.2
- Currently working on getting in some lateral learning from our labs and other such tidbits related to the next release. I'm refocused on things and even have some help from a class mate who is cross training themselves on extension development for Thunderbird as a support for this release.
- RELEASE 0.3 - The wrath of open source is coming to a close. At the following blog post I'm concluded my efforts for the semester. The 0.3 is posted, the functionality in my bugzilla patch is in place using preferences and firing off events from a common point. I've even setup the almighty extension to test overriding the behaviour. It has a bit of a bug in its loading process though which is noted on the blog. I'll keep working on this one on my own from here forward... so you may still see me poking around the IRC channels once in a while.