GNOME Bugzilla – Bug 161876
Improve "Back" shortcuts, like mouse gesture
Last modified: 2018-08-03 19:12:35 UTC
Based on the recommendations of Cockburn et al[1] I believe Epiphany should by default respond to a Back mouse gesture, and offer different keyboard shortcuts. Doing a "Back" action is used 41% of the time as technique for visiting a page, so we should optimize for that. "Gesture navigation features in which users "flick" the mouse to issue the common Back and Forward commands are both efficient and popular. They overcome the need to continually move the cursor away from the page links or to home the hands between the mouse and the keyboard, when using Back." So I propose that a) Epiphany understands _just_ the Back gesture (so we wouldn't introduce more than one unexpected gesture effect to unexperienced users) b) A new keyboard shortcut is supported for Back which is easily accessible with the left hand. Alt+` (backtick) seems a prime candidate to me. [1] http://www.stanford.edu/group/siqss/itandsociety/v01i03/v01i03a09.pdf
I have to add that I don't know if the backtick is left of the '1' key on most keyboard layouts. If it isn't then something else has to be found.
I don't think we should introduce an interaction method (mouse gestures) as default when it doesn't appear anywhere else in the entire gnome desktop - especially since it's totally undiscoverable. As for the keyboard shortcut, consistancy is probably more important, and if you ask a user where their "`" key (actually called a Grave Accent) is, many won't know. Also about 10% of people are left-handed which makes it pointless to put the shortcut across on the left-side.
spark: Epiphany could take the lead in introducing mouse gestures in GNOME, and is the prime candidate to do so. No other app I can think of would benefit as much from it. Furthermore, read the article. Putting the shortcut on the left side is *especially* good for right handed people so that they won't have to take their hand off the mouse, or reach across the keyboard with their left hand.
I'm not sure that a mouse gesture activated by default is a good idea. IMHO, it's a power user tool. I can see many many people that would be very confused if suddendly, the previous page appears without any click !
Maybe not a normal mouse gesture then, but how about interpreting right click and hold + left click as Back? How about the alternative keyboard shortcut? Alt+cursor left is not ideal since you need two hands for it (unless we can interpret AltGr + cursor left as Back too?)
I fully agree with a better left hand shortcut. right click and hold + left click seems very good to me too. left click hold + gesture to the left seems another idea. What do you think ? (It's funny how we assume that back is to the left. Very occidental point of view :-D )
Lionel, why do you say in comment #4 that gestures are a power user tool and in comment #6 that it could be another idea? Mouse gestures with the left button next to impossible anyhow, because how would you know the user isn't selecting something?
please forget my last sentence. I made a mistake.
Maybe right control + right or left cursor. However it's not good for the left handed people (well it's not like there's a whole trip to the right side of the keyboard). The mouse gesture doesn't seem like a good idea, I would suggest putting this into the gestures extension, as far as I know Opera has that gesture and people likes it. I can imagine my mother or my father getting confused because they accidentally pressed the mouse *in the middle* of the two buttons and they clicked both or maybe they click the left button and without noticing the click the right one with their middle finger.
(In reply to comment #7) > Lionel, why do you say in comment #4 that gestures are a power user tool and in > comment #6 that it could be another idea? Mouse gestures with the left button > next to impossible anyhow, because how would you know the user isn't selecting > something? > You would be able to tell because they started holding down the right button and then added the left button. Firefox has no problem doing it, so it shouldn't be impossible for epiphany. However, due to http://bugzilla.gnome.org/show_bug.cgi?id=320525 , we can't do anything with the right click either ATM.
This is an older bug but what about track pad gestures on laptops? I believe this is done with safari on apple laptops. It would also be consistent with other GNOME applications such as Builder
I finally implemented "proper" three-finger-swipe in Builder over the last couple of days, where the "content is sticky to fingers". It feels very interactive and I really like it so far. We should definitely do the same thing in Epiphany. Safari does in fact do something like this, where the previous/next pages are shown (possibly with less saturation/brightness/etc) underneath the content you are sliding. Does WebKit provide API for us to be able to do that, or do we need to screenshot/capture that on our own at the epiphany layer? In builder, I just create a temporary cairo surface for the stick-to-fingers content (while hiding the real widget) and it seems fine. If there is a strategy for doing this correctly, I don't mind putting something in libdazzle to make it easier.
(In reply to Christian Hergert from comment #12) > Does WebKit provide API for us to be able to do that, or do we need to > screenshot/capture that on our own at the epiphany layer? There's no API for accessing offscreen pixels, if that's what you're looking for. This seems like a scrolling problem, so it should be probably implemented entirely in WebKit. I don't know how to do that. I would ask Carlos Garcia. > In builder, I just create a temporary cairo surface for the stick-to-fingers > content (while hiding the real widget) and it seems fine. I don't think that's going to work with WebKit.... Would playing with gtk_scrollable_set_vadjustment() be sufficient? P.S. This is really different from mouse gestures, since with mouse gestures the content does not itself move.
(In reply to Michael Catanzaro from comment #13) > (In reply to Christian Hergert from comment #12) > > Does WebKit provide API for us to be able to do that, or do we need to > > screenshot/capture that on our own at the epiphany layer? > > There's no API for accessing offscreen pixels, if that's what you're looking > for. This seems like a scrolling problem, so it should be probably > implemented entirely in WebKit. I don't know how to do that. I would ask > Carlos Garcia. Two-finger-scroll certainly belongs in webkit for kinetic behavior, but I don't think you want the complexity of doing that for three-finger-swipe forward/back behavior. I'd leave that to applications that want it to implement it. > > In builder, I just create a temporary cairo surface for the stick-to-fingers > > content (while hiding the real widget) and it seems fine. > > I don't think that's going to work with WebKit.... If it's done by the application, I don't see why not. We should be in control of the final draw stacking unless we're doing old style Xvideo somewhere. > Would playing with gtk_scrollable_set_vadjustment() be sufficient? No, this is left/right swipe to navigate forward/back in the history. You probably want something that allows the foreground to move left/right, meanwhile, a background image simultaneously gains saturation and crossfades into the foreground. > P.S. This is really different from mouse gestures, since with mouse gestures > the content does not itself move. I brought it up here instead of a new bug because I expect 1) "mouse genstures" as they were in 2004 to be obsolete and 2) it was already discussed in #11.
TBH I don't understand most of what you're saying here -- we should talk on IRC sometime -- but 2004 mouse gestures are really not obsolete, they're still great and it's a shame we don't support them in Epiphany.
(In reply to Michael Catanzaro from comment #15) > TBH I don't understand most of what you're saying here -- we should talk on > IRC sometime -- but 2004 mouse gestures are really not obsolete, they're > still great and it's a shame we don't support them in Epiphany. They're obsolete in that you shouldn't need to deal with them specially in your code. Just use GtkGesturePan/etc like you would with touchpads and handle the signals using the same begin/update/end handlers.
See bug #789216 for touchscreen gestures. Mouse gestures are really quite different IMO as most mouse gestures would just be silly with a touch device (e.g. moving the mouse up and down to refresh, or down and right to close the page), so it's worth keeping two different bugs reports open for these.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/epiphany/issues/100.