Line 1: |
Line 1: |
| ==System wide== | | ==System wide== |
− | * Hide pointer cursor when touch screen interaction is occurring, reveal if/when mouse or trackpad is used, ''on Android 4 after not using the trackpad for a few seconds the cursor is hidden again, which works quite well (erikos)'' | + | * Hide pointer cursor when touch screen interaction is occurring, reveal if/when mouse or trackpad is used |
| + | : ''On Android 4 after not using the trackpad for a few seconds the cursor is hidden again, which works quite well --erikos'' |
| + | : ''John pointed me towards XFixes HideCursor/ShowCursor and that there is a [https://bugzilla.gnome.org/show_bug.cgi?id=650604 feature ticket] and a [http://mail.gnome.org/archives/commits-list/2011-June/msg02029.html patch] for gnome-settings-daemon that Sugar could hook into (out of my depth here, didn't get any working code) --gary'' |
| + | : ''Apparently John (mentioned briefly in a voice call) has added some hooks for us to easily enable and disable the hardware cursor, not yet investigated the code yet --gary'' |
| + | : ''[ftp://export.lcs.mit.edu/contrib/utilities/unclutter-8.README Unclutter] is a very simple utility that hides a cursor if it has not moved. Or maybe we can hide the pointer in tablet (e-book) mode and keep it in laptop mode?'' --[[User:Sridhar|Sridhar]] 19:51, 20 August 2012 (EDT) |
| * Palette hover/click behaviours | | * Palette hover/click behaviours |
| ** Single tap of a button with a primary action should _not_ trigger hover delay palette content (to prevent toolbar palettes and help hints obscuring UI after use) | | ** Single tap of a button with a primary action should _not_ trigger hover delay palette content (to prevent toolbar palettes and help hints obscuring UI after use) |
| ** Touch and hold _should_ trigger full display of palette content (like a right click, no extra delay) | | ** Touch and hold _should_ trigger full display of palette content (like a right click, no extra delay) |
| + | *: ''I'm [http://ux.stackexchange.com/questions/24460/press-and-hold-or-long-press-gestures-unintuitive concerned] about the undiscoverability of long-press actions, particularly for new users.'' --[[User:Sridhar|Sridhar]] 19:51, 20 August 2012 (EDT) |
| ** Tapping an icon with no primary action should instantly open the full menu/palette, no delay (e.g. Frame right edge buddy icon/s) | | ** Tapping an icon with no primary action should instantly open the full menu/palette, no delay (e.g. Frame right edge buddy icon/s) |
| * Hide all keyboard shortcut accelerators when booting on touch only devices | | * Hide all keyboard shortcut accelerators when booting on touch only devices |
| * Make toolbar overflow drop-down widget a standard sugar toolbutton width to allow easier access | | * Make toolbar overflow drop-down widget a standard sugar toolbutton width to allow easier access |
− | * Up/down menu overflow UI too thin (hard to scroll up, gtk combo widget needs work here) | + | * Up/down menu/combo overflow UI too thin (hard to scroll up, gtk combo widget needs work here) |
| + | |
| + | ====Text editing==== |
| * Touch friendly text selection handles | | * Touch friendly text selection handles |
− | ** Custom Sugar design, use user colours for selection handles (nothing is provided by gtk3+) | + | ** Custom Sugar design, use user colours for selection handles (or monochrome theme as a fallback) at each end of text (Carlos upstreamed [http://git.gnome.org/browse/gtk+/log/?h=touch-text-selection patches] to gtk3+) |
− | ** Selection palette Cut/Copy/Paste (Speak, Share with friend?) | + | *** Example [http://people.sugarlabs.org/garycmartin/Text_touch_place_insertion_point_design/ animation] placing the cursor via touch |
− | ** Editable vs. non-editable widgets | + | *** Example [http://people.sugarlabs.org/garycmartin/Text_touch_place_selection_design/ animation] making text selections via touch (long-press gesture) |
− | ** single tap to insert cursor (snap to end of existing word?) | + | *** Example [http://people.sugarlabs.org/garycmartin/Text_touch_selection_modification_design/ animation] moving a multi line text selection's handles via touch |
− | ** touch, hold and drag to move/place cursor (other designs also raise a zoom lens for small screen accuracy) | + | *** Example [http://www.lanedo.com/~carlos/touch-text-selection.webm movie] of Gtk3 patches (not Sugar themed yet) from Carlos. |
− | ** double tap to auto select a word | + | ** Selection palette Cut/Copy/Paste/Speak (Share selection with friend feature?) Rough [http://wiki.sugarlabs.org/go/File:Cut_Copy_Paste_Speak_palettte_mockup.png example mockup]. |
− | ** double tap and drag to select a range of text | + | *** Should Cut be introduced? Not something previously exposed in the Sugar UI. Drag & drop of a selection is difficult/error prone via touch, adding Cut would help mitigate a removal of selection drag & drop. |
| + | *** We could rely on the Sugar primary Edit toolbar, but only if we can guarantee that the toolbar is always visible when an OSK is being displayed e.g. scrolling canvas to keep current input widget cursor visible and not behind the virtual keyboard. |
| + | *** Text vs. icons vs. text & icons for palette |
| + | **** Text only provides a minimum sized palette |
| + | **** Icon only provides translation neutral palette but provides no textual hints to aid discovery |
| + | **** Text and Icon palette may be too large (obscure too much canvas) |
| + | ** Editable vs. non-editable widget interaction? e.g. Selecting text from web page, vs. selecting text in a text input widget should be identical if possible. |
| + | ** Single tap to insert cursor (snap to end of existing word?) |
| + | ** Drag cursor widget to move cursor position (other designs also raise a zoom lens for small screen accuracy but often designs based on Phone size screen limitations) |
| + | ** Touch, hold and drag to make a selection (snap to end of existing word as per current Write implementation?) |
| + | ** Touch and hold to auto select a single word, widget handles at each end of selection. |
| + | ** ''Double tap and drag to select a range of text, same as above (double tap is not a Sugar design, but a fallback for users used to existing implementations as per Android/iOS)'' |
| + | ** ''Double tap to auto select a single word, widget handles at each end of selection (double tap is not a Sugar design, but a fallback for users used to existing implementations as per Android/iOS)'' |
| | | |
| ==Frame== | | ==Frame== |
Line 22: |
Line 41: |
| ** Need to consider Frame vs. page turning gestures, left/right page turning would need to avoid screen edge to allow for Frame gesture | | ** Need to consider Frame vs. page turning gestures, left/right page turning would need to avoid screen edge to allow for Frame gesture |
| ** Frame expose/hide gesture, could be limited to a swipe in/out from any screen corner if we find accidental activations at screen edges are triggered too often | | ** Frame expose/hide gesture, could be limited to a swipe in/out from any screen corner if we find accidental activations at screen edges are triggered too often |
− | * Hide keyboard shortcut hint accelerators from tool buttons and palettes | + | * Hide keyboard shortcut hint accelerators from tool buttons and palettes (on devices with touch only hardware) |
| + | ** Investigate areas where we may want to add a visual button, make an existing button more accessible, or add a multi touch gesture in places where an accelerator key may be frequently used e.g. Alt-tab between open activities could be improved by making the Frame Activity Zoom icon act like Alt-tab (clicking more than once cycles between instances), or perhaps allowing an activity toolbar to be swiped to switch activities. |
| * Hide/expose on screen keyboard. Show either the Frame or on screen keyboard, but never both at the same time | | * Hide/expose on screen keyboard. Show either the Frame or on screen keyboard, but never both at the same time |
| * Access Point device palette in lower Frame edge does not respond to touch events | | * Access Point device palette in lower Frame edge does not respond to touch events |