diff --git a/ChangeLog b/ChangeLog index df7f9a2..e1eff12 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,7 +2,7 @@ Dillo project ============================================================================= -dillo-3.0 [September ??, 2011] +dillo-3.0 [September 06, 2011] +- Ported Dillo to FLTK-1.3. Patch: corvid, Johannes Hofmann, Jorge Arellano Cid @@ -36,6 +36,7 @@ Patches: corvid +- Add support for CSS adjacent sibling selectors. - Collapse parent's and first child's top margin. + - Fix redraw loops and reenable limit_text_width dillorc option. Patch: Johannes Hofmann +- Default binding for left-tab changed to Shift-Ctrl-Tab. Patch: Jeremy Henty diff --git a/README b/README index 5d9c88b..dd529df 100644 --- a/README +++ b/README @@ -21,6 +21,12 @@ The core team welcomes developers willing to join our workforce. +NOTE: With FLTK-1.3, when running on X with Xft enabled (the +default), font naming is more restricted than it was with FLTK2. +If your font_* preferences are no longer working well, please try +the fc-list command as given in dillorc. + + Here's a list of some old well-known problems of dillo: * no FRAMES rendering @@ -42,9 +48,9 @@ 1.- Install fltk: - tar jxvf fltk-1.3.0-source.tar.gz + tar zxvf fltk-1.3.0-source.tar.gz cd fltk-1.3.0 - less README.unix + less README.Unix.txt make sudo make install cd .. @@ -55,7 +61,7 @@ tar jxvf dillo-3.0.tar.bz2 cd dillo-3.0 - ./autogen.sh; ./configure; make + ./configure; make sudo make install-strip diff --git a/configure b/configure index f26dc28..d83cf04 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for dillo 3.0-pre. +# Generated by GNU Autoconf 2.68 for dillo 3.0. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -557,8 +557,8 @@ # Identity of this package. PACKAGE_NAME='dillo' PACKAGE_TARNAME='dillo' -PACKAGE_VERSION='3.0-pre' -PACKAGE_STRING='dillo 3.0-pre' +PACKAGE_VERSION='3.0' +PACKAGE_STRING='dillo 3.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1287,7 +1287,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures dillo 3.0-pre to adapt to many kinds of systems. +\`configure' configures dillo 3.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1358,7 +1358,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dillo 3.0-pre:";; + short | recursive ) echo "Configuration of dillo 3.0:";; esac cat <<\_ACEOF @@ -1464,7 +1464,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dillo configure 3.0-pre +dillo configure 3.0 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2172,7 +2172,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by dillo $as_me 3.0-pre, which was +It was created by dillo $as_me 3.0, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -3099,7 +3099,7 @@ # Define the identity of the package. PACKAGE='dillo' - VERSION='3.0-pre' + VERSION='3.0' cat >>confdefs.h <<_ACEOF @@ -6984,7 +6984,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by dillo $as_me 3.0-pre, which was +This file was extended by dillo $as_me 3.0, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7050,7 +7050,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -dillo config.status 3.0-pre +dillo config.status 3.0 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff --git a/configure.in b/configure.in index f0a011c..ddf500d 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,6 @@ dnl Process this file with aclocal, autoconf and automake. -AC_INIT([dillo], [3.0-pre]) +AC_INIT([dillo], [3.0]) dnl Detect the canonical target build environment AC_CANONICAL_TARGET diff --git a/dillorc b/dillorc index 42bb741..4b88011 100644 --- a/dillorc +++ b/dillorc @@ -80,8 +80,6 @@ # Set this to YES if you want to limit the word wrap width to the viewport # width (may be useful for iPAQ) -# *** NOT HOOKED UP YET *** -# #limit_text_width=NO diff --git a/dpi/downloads.cc b/dpi/downloads.cc index b984bec..89d599c 100644 --- a/dpi/downloads.cc +++ b/dpi/downloads.cc @@ -203,7 +203,7 @@ char *ret = (char *) malloc(2 * len + 1); char *dest = ret; - while (len-- > 0) { + while (len-- > 0) { if (*buf == '@') *dest++ = *buf; *dest++ = *buf++; @@ -1144,7 +1144,7 @@ fl_font(o->font, o->size); fl_measure(o->value, W, H, interpret_symbols); } - + //int main(int argc, char **argv) diff --git a/dw/fltkplatform.cc b/dw/fltkplatform.cc index a949f21..f84ddad 100644 --- a/dw/fltkplatform.cc +++ b/dw/fltkplatform.cc @@ -172,7 +172,7 @@ family->set ((Fl_Font) i, t); delete familyName; } else { - // set first font of family also as normal font in case there + // set first font of family also as normal font in case there // is no normal (non-bold, non-italic) font family = new FontFamily ((Fl_Font) i, -1, -1, -1); family->set ((Fl_Font) i, t); diff --git a/dw/fltkui.cc b/dw/fltkui.cc index f02110c..c0c8ff4 100644 --- a/dw/fltkui.cc +++ b/dw/fltkui.cc @@ -683,7 +683,7 @@ { /* FLTK-1.3 insists upon returning a new copy of the buffer text, so * we have to keep track of it. - */ + */ if (text_copy) free(text_copy); text_copy = buffer->text(); diff --git a/dw/fltkviewport.cc b/dw/fltkviewport.cc index c79eb8e..78e7d62 100644 --- a/dw/fltkviewport.cc +++ b/dw/fltkviewport.cc @@ -232,7 +232,7 @@ /* When the viewport has focus (and not one of its children), FLTK * sends the event here. Returning zero tells FLTK to resend the * event as SHORTCUT, which we finally route to the parent. */ - + /* As we don't know the exact keybindings set by the user, we ask * for all of them (except Tab to keep form navigation). */ if (Fl::event_key() != FL_Tab) @@ -295,15 +295,13 @@ case FL_RELEASE: if (Fl::event_button() == FL_MIDDLE_MOUSE) { - dragScrolling = 0; setCursor (core::style::CURSOR_DEFAULT); - } else if (verScrolling && vscrollbar->handle(event)) { - verScrolling = 0; - return 1; - } else if (horScrolling && hscrollbar->handle(event)) { - horScrolling = 0; - return 1; + } else if (verScrolling) { + vscrollbar->handle(event); + } else if (horScrolling) { + hscrollbar->handle(event); } + horScrolling = verScrolling = dragScrolling = 0; break; case FL_ENTER: diff --git a/dw/style.cc b/dw/style.cc index d11abf8..b5549d3 100644 --- a/dw/style.cc +++ b/dw/style.cc @@ -833,7 +833,7 @@ yp1 = yb1 + style->borderWidth.top; xp2 = xb2 - style->borderWidth.right; yp2 = yb2 - style->borderWidth.bottom; - + light = inverse ? Color::SHADING_DARK : Color::SHADING_LIGHT; dark = inverse ? Color::SHADING_LIGHT : Color::SHADING_DARK; normal = inverse ? Color::SHADING_INVERSE : Color::SHADING_NORMAL; diff --git a/dw/ui.cc b/dw/ui.cc index 5d5d2bf..35d63f6 100644 --- a/dw/ui.cc +++ b/dw/ui.cc @@ -266,9 +266,9 @@ int descent) { /** - * \todo The argument to queueResize is not always true. (But this works.) + * \todo Verify that this is correct. */ - resource->queueResize (true); + resource->queueResize (resource->childWidget->extremesChanged ()); } ComplexButtonResource::ComplexButtonResource () diff --git a/src/IO/about.c b/src/IO/about.c index ad033d9..1875705 100644 --- a/src/IO/about.c +++ b/src/IO/about.c @@ -117,6 +117,10 @@ " \n" "   \n" " \n" +" Slashdot\n" +" \n" +"   \n" +" \n" " Linux.org.uk\n" " \n" "   \n" @@ -235,7 +239,7 @@ "\n" " \n" "

Release overview

\n" -" August ??, 2011\n" +" September 06, 2011\n" "\n" " \n" " \n" @@ -281,22 +285,20 @@ "
  • Default binding for close-all changed from Alt-q to Ctrl-q.\n" "
  • Default binding for close-tab changed from Ctrl-q to Ctrl-w.\n" "
  • Default binding for left-tab changed to Shift-Ctrl-Tab.\n" +"
  • Rewrote the User Interface: much simpler design and event handling.\n" +"
  • Added on-the-fly panel resize (tiny/small/medium and normal/small icons).\n" "
  • 'hide-panels' key action now hides the findbar if present,\n" " and toggles display of the control panels otherwise.\n" "
  • Allow multiple search engines to be set in dillorc, with a menu\n" " in the web search dialog to select between them.\n" "
  • Added an optional label to dillorc's search_url.\n" " Format: \"[<label> ]<url>\"\n" -"
  • Removed 'large' option of panel_size preference.\n" "
  • Add right_click_closes_tab preference (default is middle click).\n" "
  • Allow binding to non-ASCII keys and multimedia keys.\n" -"
  • Removed --enable-ansi configure option.\n" "
  • Avoid a certificate dialog storm on some HTTPS sites (BUG#868).\n" "
  • Enable line wrapping for <textarea>. (BUG#903)\n" -"
  • Rewrote the User Interface: much simpler design and event handling.\n" "
  • Avoid double render after going Back or Forward\n" " (it takes half the time now!)\n" -"
  • Added on-the-fly panel resize (tiny/small/medium and normal/small icons).\n" "
  • Implemented a custom tabs handler (to allow fine control of it).\n" "
  • Rewrote dw's crossing-events dispatcher (avoids redundant events).\n" "
  • Fixed a years old bug: stamped tooltips when scrolling with keyboard.\n" @@ -304,9 +306,12 @@ " (BUG#948)\n" "
  • Cancel the expected URL after offering a download (BUG#982)\n" "
  • Eliminated a pack of 22 compiler warnings (gcc-4.6.1 amd64)\n" +"
  • Removed 'large' option of panel_size preference.\n" +"
  • Removed --enable-ansi configure option.\n" "
  • Limit saved cookie size.\n" "
  • Wrap image alt text.\n" "
  • Added support for CSS adjacent sibling selectors.\n" +"
  • Fix redraw loops and reenabled limit_text_width dillorc option.\n" "
  • Collapse parent's and first child's top margin.\n" "\n" "
  • \n" diff --git a/src/cache.c b/src/cache.c index 5ea4551..3804ac7 100644 --- a/src/cache.c +++ b/src/cache.c @@ -1176,6 +1176,8 @@ } } if (AbortEntry) { + if (ClientWeb->flags & WEB_RootUrl) + a_Nav_cancel_expect_if_eq(Client_bw, Client->Url); a_Bw_remove_client(Client_bw, Client->Key); Cache_client_dequeue(Client, NULLKey); --i; /* Keep the index value in the next iteration */ diff --git a/src/capi.c b/src/capi.c index 885b4eb..33cfb54 100644 --- a/src/capi.c +++ b/src/capi.c @@ -767,7 +767,6 @@ a_Chain_bcb(OpAbort, Info, NULL, NULL); /* remove the cache entry for this URL */ a_Cache_entry_remove_by_url(conn->url); - a_Nav_cancel_expect_if_eq(conn->bw, conn->url); Capi_conn_unref(conn); dFree(Info); break; diff --git a/src/css.cc b/src/css.cc index e9a8eb5..a1d51da 100644 --- a/src/css.cc +++ b/src/css.cc @@ -161,7 +161,7 @@ if (comb == ADJACENT_SIBLING) node = docTree->sibling (node); - else + else node = docTree->parent (node); } diff --git a/src/dillo.cc b/src/dillo.cc index e5fca5c..5e6615c 100644 --- a/src/dillo.cc +++ b/src/dillo.cc @@ -365,6 +365,11 @@ // Sets WM_CLASS hint on X11 Fl_Window::default_xclass("dillo"); + if (!prefs.show_tooltip) { + // turn off UI tooltips + Fl::option(Fl::OPTION_SHOW_TOOLTIPS, false); + } + // Disable '@' and '&' interpretation in normal labels. Fl::set_labeltype(FL_NORMAL_LABEL, custLabelDraw, custLabelMeasure); diff --git a/src/doctree.hh b/src/doctree.hh index 92cf6f0..85c1eff 100644 --- a/src/doctree.hh +++ b/src/doctree.hh @@ -58,7 +58,7 @@ num = 0; }; - ~Doctree () { + ~Doctree () { delete rootNode; }; @@ -85,7 +85,7 @@ }; inline DoctreeNode *parent (const DoctreeNode *node) { - if (node->parent != rootNode) + if (node->parent != rootNode) return node->parent; else return NULL; diff --git a/src/findbar.cc b/src/findbar.cc index dcb9db5..47363db 100644 --- a/src/findbar.cc +++ b/src/findbar.cc @@ -125,6 +125,7 @@ hide_btn->callback(hide_cb, this); hide_btn->clear_visible_focus(); hide_btn->box(FL_THIN_UP_BOX); + hide_btn->tooltip("Hide"); add(hide_btn); i = new MyInput(x, border, input_width, height); @@ -140,6 +141,8 @@ next_btn->callback(search_cb, this); next_btn->clear_visible_focus(); next_btn->box(FL_THIN_UP_BOX); + next_btn->tooltip("Find next occurrence of the search phrase\n" + "shortcut: Enter"); add(next_btn); prev_btn= new Fl_Button(x, border, button_width, height, "Previous"); @@ -148,6 +151,8 @@ prev_btn->callback(searchBackwards_cb, this); prev_btn->clear_visible_focus(); prev_btn->box(FL_THIN_UP_BOX); + prev_btn->tooltip("Find previous occurrence of the search phrase\n" + "shortcut: Shift+Enter"); add(prev_btn); check_btn = new Fl_Check_Button(x, border, 2*button_width, height, @@ -156,13 +161,6 @@ check_btn->clear_visible_focus(); add(check_btn); - if (prefs.show_tooltip) { - hide_btn->tooltip("Hide"); - next_btn->tooltip("Find next occurrence of the search phrase\n" - "shortcut: Enter"); - prev_btn->tooltip("Find previous occurrence of the search phrase\n" - "shortcut: Shift+Enter"); - } } Findbar::~Findbar() diff --git a/src/form.cc b/src/form.cc index 9b86fcb..f70bea8 100644 --- a/src/form.cc +++ b/src/form.cc @@ -851,7 +851,10 @@ Embed *embed; char *name, *value; - page = new Textblock (prefs.limit_text_width); + /* We used to have Textblock (prefs.limit_text_width) here, + * but it caused 100% CPU usage. + */ + page = new Textblock (false); page->setStyle (html->styleEngine->backgroundStyle ()); ResourceFactory *factory = HT2LT(html)->getResourceFactory(); diff --git a/src/prefsparser.cc b/src/prefsparser.cc index 3f8e4a9..4ebb39d 100644 --- a/src/prefsparser.cc +++ b/src/prefsparser.cc @@ -218,11 +218,4 @@ // restore the old numeric locale setlocale(LC_NUMERIC, oldLocale); dFree(oldLocale); - - - if (prefs.limit_text_width) { - /* BUG: causes 100% CPU usage with