[PATCH] version 11 of tab/frame patch, added keyboard navigation
Hi'all, The next version (11) of my tab patch is ready (see bottom of this message for download instructions). The big new features are keyboard navigation and configurable key bindings (currently only for keyboard navigation and scrolling, more will be added later). See below for more information on these features. Keyboard navigation is also available in a separate patch, for those who do not want to apply the tab/frame patch. Watch the mailing list and/or see the patch website (http://www.geocities.com/ikbenfrank/) for more information. New features: - keyboard navigation! - configurable key bindings (for keyboard navigation and scrolling) Fixed bugs - solved the 'missing frames' problem for German (and other?) users. Stephan Goetter pointed me in the right direction (the German locale uses the "," as a decimal separator). Some behavioural changes with regard to stock (CVS) Dillo: - Shift-Ctrl-L (instead of Ctrl-L) for "open URL" dialog - Ctrl-L for "focus location bar" - Ctrl-S for "Save page As..." - Ctrl-U for "view source" while in a document, "clear entry" everywhere else (in stock Dillo this key is bound to "focus location bar" while in a document) - Ctrl-B for "Bookmark this page" - Alt-H for "Home" - "/" starts incremental search instead of normal search. For normal (non-incremental) search use Ctrl-F Support for the 0.7.3 branch has been dropped as of this version of this patch. Sorry, folks, but that is the price you pay for progress... Currently, both tab and frame support can be turned off completely, producing a smaller binary. I might (on request of other Dillo developers) remove the conditional compilation, thereby making tab and frame support a permanent feature of Dillo. If you want to keep the conditional compilation feature, speak out on the mailing list! Keyboard navigation can currently NOT be turned off, let me know if this is needed. Frameset (and iframe) support is enabled by default, it can be disabled using the configure option --enable-xhtml-dtd=strict. You can also use --enable-xhtml-dtd=transitional, which will give you iframe but no frameset support. The default option, --enable-xhtml-dtd=frameset, gives both iframe and frameset support. As usual, tab support can be disabled using --disable-tabs. What does not work yet: - the full_screen_off_button is not shown in frame documents. Use double-click instead to toggle the full screen setting... - the frameborder attribute works, but dw_gtk_scrolled_frame always draws a (focus) shadow around itself - even with the border size is set to 0. This can be solved in several ways - adding a 'borderless' attribute to dw_gtk_scrolled_frame, using a special borderless GTK theme for the widget, etc. In GTK2 this is all much easier (just set the widget's style's xthickness/ythickness to 0), but we're not there yet... - borderless frames can not be resized, even though Dillo always shows a thin border (see above). Who cares about resizing borderless frames? Mozilla does it, but I don't think this is an issue. Agree? - iframes always have a border (see above) Keyboard Navigation =================== You can use the keyboard to navigate links and controls in Dillo. In the default configuration, the following keys are used: Alt-Up: link UP Alt-Down: link DOWN Alt-Left: link LEFT Alt-Right: link RIGHT Enter: follow link or activate GTK+ widget Escape: unhighlight link In a non-frames version of Dillo the following keys are also used: Tab: NEXT link Shift-Tab: PREVIOUS link these keys are not bound by default in a frames-capable version of Dillo because they are used to navigate between frames. You are free to bind them (or any other key combination) to these functions though (see Keyboard bindings) Sometimes the result of link UP and link DOWN seems a bit unpredictable. This can happen when the next UP or DOWN link is currently not visible (below the bottom or above the top of the window). The screen coordinates for words are only known when they are in the visible area of the viewport, so off-screen links are accessed sequentially instead. Search and keyboard navigation ------------------------------ Keyboard navigation works with the Search feature: if search hits a link, it will be focused. Press <Enter> in the viewport to follow the link, <Esc> to unhighlight it. When using the status bar for search (an optional feature in the tabbed version of Dillo), press <Esc> to close the search entry followed by <Enter> to follow the link. A second <Esc> will unhighlight the focused link. Pressing <Enter> in the search entry (popup or status bar) repeats the search. History ------- The focus location is saved when navigating to another document in the same window or tab. This makes it possible to go back in history and continue to the next link on the page. Form fields ----------- The same keys used for link navigation work for form field navigation. Do note however that form fields, being embedded GTK+ widgets, can have their own bindings for some functions. As an example, the space bar is bound to the activate function in radio buttons. Keyboard bindings ================= It is possible to change the keyboard bindings used for keyboard navigation, either through editing the dillorc or by adding a section to any of the current GTK+ rc-files. The syntax is the same, the only difference is the addition of the preference keyword "key_bindings" in the dillorc and the fact that the bindings have to be enclosed in double quotes. An example of the configuration syntax can be found in the dillorc and on the mailing list. Tabs, Frames, Keyboard navigation and browser bloat =================================================== version: 0.8.0-pre patch: dillo-20031015-tabs.patch.gz unpatched: 294132 bytes patched, no tabs, no frames: 308404 bytes patched, with tabs, no frames: 315220 bytes patched, no tabs, with frames: 324852 bytes patched, with tabs, with frames: 333108 bytes (gcc 3.2.2, binutils 2.13.90.0.18, CFLAGS "-Os") The increase in size is due to the addition of keyboard navigation. If you want to be able to compile Dillo without this feature (it takes about 10 KB) let me know through the mailing list. Download instructions ===================== The patch is made against 20031014 CVS. Do not forget to run ./autogen.sh after applying the patch. You can find the patch on the usual (ad-happy, use an ad-blocking proxy or sane browser) site: http://www.geocities.com/ikbenfrank/ More specifically: Dillo 0.8.0-pre (CVS) ===================== http://www.geocities.com/ikbenfrank/dillo-20031015-tabs.patch.gz size: 85716 bytes (gzipped, as downloaded) 371416 bytes (uncompressed) md5sum: 358041a00feeef1706b81d24a985613a (gzipped, as downloaded) bf61b1bdb212c69c30ee1fa6fa74f729 (uncompressed) As always, check the site for the most recent version Cheers//Frank -- WWWWW ________________________ ## o o\ / Frank de Lange \ }# \| / +46-734352015 \ \ `--| _/ <Hacker for Hire> \ `---' \ +31-640037120 / \ frank@unternet.org / `------------------------' [ "Omnis enim res, quae dando non deficit, dum habetur et non datur, nondum habetur, quomodo habenda est." ]
Hi! I have a really strange problem with dillo 0.7.3 as well as with the most recent CVS checkout+tab/frames patch: Dillo does not render slashdot.com correctly.. in fact rendering is so bad i even have to load another browser (yuck!) to be able to read the stories. How does it look like then? (I'd love to send a screenshot, but I think I'm not allowed too?) The /. menu & links are displayed correctly, though there are no news. White background. Right of that, I have a black background, with what seems to be the captions of the news - with black font on black background not very useful. Even more right of that, I have the poll menu and the login stuff and so.. In short: Totally unusable for that page. Other (read: all other) pages are shown correctly. If I wouldn't know /. is supposed to be displayed correctly, I wouldn't ask.. but so... Do you have any ideas what might cause this visual annoyance? Thanks for your help :) Cheers, johannes
On Wed, 15 Oct 2003 16:36:17 +0200 johannes leimbach <johannes.leimbach@gmx.de> wrote:
Do you have any ideas what might cause this visual annoyance?
http://validator.w3.org/check?uri=www.slashdot.org Maybe the 348 errors has something to do with it.. - Victor
On Wed, 15 Oct 2003 16:36:17 +0200 johannes leimbach <johannes.leimbach@gmx.de> wrote:
Do you have any ideas what might cause this visual annoyance?
Yeah, many errors on /.org ... too many. I files a bug report there which just went unnoticed and was marked within 1 day as "closed", even though there was no difference. Due to this problem, and the fact that I love Dillo and slashdot, I created my own site which downloads (using a local cookie) and renders slashdot (front page only) through tidy. If the main page is what you are looking for, you can use my site (works ONLY for Dillo, rejects other browsers totally) at http://slashdot.axljab.homelinux.org/ Greetings Ralph -- http://axljab.homelinux.org/ "...the software said Win95 or better, so I installed Linux"
Hi! You're patch works fine, thanks for the good work. One (minor) bug though: It seems to mess up the tab order of the elements. Take for example an online forum (phpbb). Go to "Login", so you must enter an username+password. Before the patch (in 0.7.3) i could set the focus from textbox 2 textbox with TAB, now it "jump" to a (for me) random element. Would be nice if you could check this out. Cheers, johannes :)
johannes leimbach wrote:
Hi!
You're patch works fine, thanks for the good work. One (minor) bug though:
It seems to mess up the tab order of the elements. Take for example an online forum (phpbb). Go to "Login", so you must enter an username+password. Before the patch (in 0.7.3) i could set the focus from textbox 2 textbox with TAB, now it "jump" to a (for me) random element.
Yeah, Tab is a bit weird right now. I'll probably bind Tab to gtk_contain_focus (the way it was) in the next version, both for the tab/frame and non-frame version of the patch.. Cheers//Frank -- WWWWW ________________________ ## o o\ / Frank de Lange \ }# \| / +46-734352015 \ \ `--| _/ <Hacker for Hire> \ `---' \ +31-640037120 / \ frank@unternet.org / `------------------------' [ "Omnis enim res, quae dando non deficit, dum habetur et non datur, nondum habetur, quomodo habenda est." ]
participants (4)
-
Frank de Lange
-
johannes leimbach
-
Ralph Slooten
-
Victor Sahlstedt