After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 161876 - Improve "Back" shortcuts, like mouse gesture
Improve "Back" shortcuts, like mouse gesture
Status: RESOLVED OBSOLETE
Product: epiphany
Classification: Core
Component: Interface
git master
Other Linux
: Normal enhancement
: ---
Assigned To: Epiphany Maintainers
Marco Pesenti Gritti
Depends on:
Blocks:
 
 
Reported: 2004-12-21 12:41 UTC by Reinout van Schouwen
Modified: 2018-08-03 19:12 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Reinout van Schouwen 2004-12-21 12:41:00 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
Comment 1 Reinout van Schouwen 2004-12-21 13:30:58 UTC
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.
Comment 2 spark 2004-12-22 15:33:25 UTC
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.
Comment 3 Reinout van Schouwen 2004-12-22 15:37:46 UTC
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.
Comment 4 Lionel Dricot 2006-02-22 11:43:54 UTC
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 !
Comment 5 Reinout van Schouwen 2006-02-22 13:06:56 UTC
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?)
Comment 6 Lionel Dricot 2006-02-22 13:41:23 UTC
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 )
Comment 7 Reinout van Schouwen 2006-02-22 14:02:57 UTC
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?
Comment 8 Lionel Dricot 2006-02-22 14:37:14 UTC
please forget my last sentence. I made a mistake.
Comment 9 Diego Escalante Urrelo (not reading bugmail) 2006-08-14 08:50:07 UTC
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.
Comment 10 Mark Reitblatt 2006-10-11 21:41:51 UTC
(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.
Comment 11 Billy Barrow 2016-03-30 02:35:53 UTC
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
Comment 12 Christian Hergert 2017-10-14 20:39:31 UTC
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.
Comment 13 Michael Catanzaro 2017-10-14 23:21:52 UTC
(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.
Comment 14 Christian Hergert 2017-10-14 23:52:04 UTC
(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.
Comment 15 Michael Catanzaro 2017-10-14 23:56:14 UTC
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.
Comment 16 Christian Hergert 2017-10-14 23:59:24 UTC
(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.
Comment 17 Michael Catanzaro 2017-10-20 01:11:04 UTC
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.
Comment 18 GNOME Infrastructure Team 2018-08-03 19:12:35 UTC
-- 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.