GNOME Bugzilla – Bug 123008
Provide caret movement/navigation within the GNOME help application
Last modified: 2004-12-22 21:47:04 UTC
This is done in Mozilla (press F7 to turn it on). Providing this functionality in the help tool also enables something else very inportant: the ability to copy text without using the mouse. Mouseless operation of all functionality is a core accessibiloity requirement.
since this is a feature, can we expedite discussion? Padraig, can you provide a patch? It's marked 'AP2' so we aim to fix by 2.6, which means I guess in the next coupld of weeks before feature freeze.
I would welcome a discussion on what is required here. I do not have a clear view of what is required here and whether it is feasible.
Padraig: What is required is a (visible) text caret which is toggled on and off by F7, which thereafter responds to arrow key navigation in the 'usual' way for text widgets. Also required is some keybinding for toggling selection on and off (possibly shift-arrow, etc. - ideally the same as for other text widgets) so that text displayed in yelp can be selected without the use of the mouse. The gtkhtml2 widget should, under these conditions, then emit caret-moved events and text-selection events.
I have started looking at what I can do for this.
Created attachment 22486 [details] [review] Interim patch
Created attachment 23022 [details] [review] Updated patch
The updated patch implements the following: It uses F7 to toggle whether cursor should be visible. It adds support for Left, Right, Ctrl+Left and Ctrl+Right keybindings to navigate or select the text in a HtmlView; the text is selected by also using the Shift key. I propose to commit this patch before next week's freeze. Among the things remaining to be donew are: 1) Clicking the mouse should move the cursor to the specified position. 2) Add more move key bindings. e.g. PageUp, PageDown, Home, End. 3) Add accessibility support.
Created attachment 23105 [details] [review] Patch actually committed
Created attachment 23253 [details] [review] New patch
The new patch implements PageUp, PageDown, Home, End, Up and DownArrow to move the cursor. To complete this aspect, virtual cursor position needs to be implemented.
I have completed the implementation of cursor movement. I have logged bugs #131463 (Implementing FLOWS_FROM and FLOW_TO relations), 131365 (Emit text-caret-moved signal when cursor moves) and 131466 (Update cursor position when mouse button is clicked). I am therefore marking this bug as fixed.
Padraig, bug #131365 is "DataSourceSelector crashes if data source doesn't exist". Gnopernicus is not reading text in response to caret movement in yelp (after pressing F7). Perhaps that bug never got logged? I see that at-poke indicates the new caret position when moved, so I'm not clear where things are going wrong. Could you please investigate, and either file a Gnopernicus bug or address the missing functionality in yelp in a bug?
Peter, Is this still a live issue?
Kind of. The fixes in Gnopernicus introduced some nasty side effects that haven't been fully addressed (or if recent patches do fully address them, they haven't been thoroughly tested).