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 772748 - can no longer use keyboard to scroll through conversation view
can no longer use keyboard to scroll through conversation view
Status: RESOLVED FIXED
Product: geary
Classification: Other
Component: ux
master
Other Linux
: High normal
: 0.12.0
Assigned To: Geary Maintainers
Geary Maintainers
wk2-fallout
Depends on: geary-wk2 765516
Blocks:
 
 
Reported: 2016-10-11 12:25 UTC by Adam Dingle
Modified: 2017-02-23 03:11 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Adam Dingle 2016-10-11 12:25:36 UTC
Now that the GTK widget conversion branch has landed in master, I can no longer use the keyboard to scroll through the conversation view.  To see this:

1. Select any conversation.
2. Click in the body of any message in the conversation.
3. Now typing any of the following keys does nothing: <up arrow>, <down arrow>, Page Up, Page Down, Home, End.  Previously I could use these to scroll through the conversation.
Comment 1 Federico Bruni 2016-10-11 12:34:38 UTC
Adam, this workaround works here: if you unfold the first message of a conversation, then you can scroll with arrow keys.
Comment 2 Adam Dingle 2016-10-11 12:56:53 UTC
That's true, sort of.  If you fold or unfold any message, then you can scroll up and down with the arrow keys, though the scrolling is inconsistent: if you press the down arrow key repeatedly, then on some presses the view will jump by a large amount, on other presses it will scroll just a little bit, and sometimes it won't scroll at all.

If you fold or unfold any message, then click in the message body, the arrow keys then do nothing as I mentioned in the original bug report.
Comment 3 Michael Gratton 2016-10-22 04:06:09 UTC
Since we're now using GtkListBox instead of a WebKit WebView, keyboard nav of conversations has become a lot more app-like, and less web-page-like.

GtkListBox supports Up/Down for switching between individual messages, and PageUp/PageDown for scrolling whole pages, and Home/End for jumping to the first/last message.

You can hit Shift+Tab at the top of the when the message body is focused (i.e. the web view), and the focus in the HTML document is at the top of the web view's focus chain, to escape the web view and return to scrolling through messages using up/down.

Note that Up/Down and Home/End now scrolls by complete messages, not by fractions/whole heights of the viewport like a web page. This can make it jumpy, in that pressing down will move to the next whole message, and because of the way focus works in GTK, if the next whole message is larger than the window, it will be jump scrolled all the way to the top, making the previous message disappear.

Also, although I had a quick hacky go at it, Space doesn't work consistently like it does in a web page.

With the WK2 port, I'm going to attempt to clean up focus scrolling, to make it less jumpy and to fix some bugs, such keynav not working when a message body (i.e. the web view) is focused, as Adam points out.

With all this mind, does keynav make a bit more sense now? Is there anything in the above that you're unhappy with?
Comment 4 Michael Gratton 2016-10-22 04:12:19 UTC
To be specific, I'm planning to fix the following 0.12:

 - Remove the semi-functioning Spacebar hack, because I think it's more useful being able to expand/collapse messages.
 - Make the jump-scroll between messages less jarring
 - See if it's possible to make escaping the message body a bit easier

Would you guys be happy with that?
Comment 5 Adam Dingle 2016-10-22 15:37:23 UTC
To me, the most significant issue is that if I click in the message body, then keys such as Page Up/Page Down do nothing.  I often click in the message body in the course of switching from another application to Geary; if then I then press Page Up then nothing happens, which is annoying.

Could you fix that as well?  If so, I think I'd be happy.  I actually don't care much about the behavior of Up Arrow/Down Arrow, since I virtually always scroll through messages use Page Up/Page Down, not the arrow keys.
Comment 6 Adam Dingle 2016-10-22 15:39:05 UTC
Aha - I reread your comment and I believe that your proposal to "make escaping the message body a bit easier" is what I was just asking for.  So yet, I think I would be happy with your proposed list.  :)
Comment 7 Michael Gratton 2017-02-16 07:29:56 UTC
So on reflecting about this a bit, I've just landed commit 1806065 on master that does the following:

 - Restores conventional controls (Up/Down/PageUp/PageDown/Home/End) to control the conversation's vertical scrollbar
 - Retains Ctrl+Up/Ctrl+Down/Ctrl+Home/Ctrl+End to move the focus between individual messages (Ctrl+PageUp/Ctrl+PageDown also works, but the conversation list's custom padding triggers a assert in GtkListBox under certain circumstances, so I'm not going to advertise it further)
 - Uses Spacebar/Shift+Spacebar (but not backspace, since that's also mapped to trash/delete) to advance the focus forward/back through individual messages

These should now all work regardless of whether a message's body is focused or not.

With exception of the Spacebar, this restores 0.11's behaviour for scrolling through a conversation, while retaining keyboard shortcuts to easily move between messages (Bug 724841). I feel the different spacebar behaviour is actually an improvement, but that's just IMHO. It would also provide consistent behaviour with Bug 713318 in the future. But in any case I can't restore the old behaviour, since it triggers the same bad assumption in GtkListBox as Ctrl+PageUp does.

Moving the focus out of the body's WebView is still annoying (per Bug 713436 only Ctrl+Tab, Ctrl+Shift+Tab work and they move the focus too far - out of the conversation viewer altogether), but that was already an issue and at least the new Ctrl-based shortcuts above and Space behaviour lets people easily escape it to somewhere closer.

Feedback welcome before I close this. I should probably update the manual and the shortcuts window to reflect the above, I guess.
Comment 8 Michael Gratton 2017-02-23 03:11:25 UTC
Manual updated in commit 548529d, the shortcuts window needs something of a more general reorg before adding too much more to it however.

Closing this as fixed.