From 7fa07252412472079f7881d10dc22107a435a4cc Mon Sep 17 00:00:00 2001 From: Kirtika Ruchandani Date: Sat, 27 Jun 2009 15:53:51 +0530 Subject: [PATCH] Added gtkhtml,libhildonhelp and maemopad --- gtkhtml/gtkhtml_050_check_string.diff | 19 + gtkhtml/gtkhtml_090_dependency_removal.diff | 760 ++++++++++++++++++++ .../gtkhtml_100_dependency_removal_cleaning.diff | 140 ++++ gtkhtml/gtkhtml_110_panning.diff | 155 ++++ gtkhtml/gtkhtml_120_text_selection.diff | 104 +++ gtkhtml/gtkhtml_140_const_patch.diff | 157 ++++ gtkhtml/gtkhtml_150_image_magnification.diff | 126 ++++ gtkhtml/gtkhtml_160_get_motion_hints.diff | 27 + ...170_text_selection_with_proper_doubleclick.diff | 35 + .../gtkhtml_180_dont_click_link_when_panning.diff | 220 ++++++ gtkhtml/gtkhtml_190_proper_adjustment_values.diff | 33 + gtkhtml/gtkhtml_200_textslave_proper_disposal.diff | 24 + gtkhtml/gtkhtml_210_try_a11y.diff | 33 + gtkhtml/gtkhtml_220_link_visited.diff | 115 +++ gtkhtml/gtkhtml_230_remove_libart.diff | 60 ++ gtkhtml/gtkhtml_240_last_search_selected_area.diff | 186 +++++ gtkhtml/gtkhtml_250_back_out_of_regex_search.diff | 58 ++ gtkhtml/gtkhtml_260_dolt_fix.diff | 14 + gtkhtml/gtkhtml_270_content_type_fix.diff | 12 + .../gtkhtml_280_pop_element_by_type_crash_fix.diff | 37 + gtkhtml/gtkhtml_290_set_image_max_size.diff | 306 ++++++++ gtkhtml/gtkhtml_300_coverity_findings.diff | 78 ++ ...tkhtml_310_some_workarounds_to_avoid_crash.diff | 36 + gtkhtml3.14_3.24.4.bb | 54 ++ libhildonhelp_2.0.5.bb | 22 + maemopad_2.4.bb | 18 + 26 files changed, 2829 insertions(+) create mode 100644 gtkhtml/gtkhtml_050_check_string.diff create mode 100644 gtkhtml/gtkhtml_090_dependency_removal.diff create mode 100644 gtkhtml/gtkhtml_100_dependency_removal_cleaning.diff create mode 100644 gtkhtml/gtkhtml_110_panning.diff create mode 100644 gtkhtml/gtkhtml_120_text_selection.diff create mode 100644 gtkhtml/gtkhtml_140_const_patch.diff create mode 100644 gtkhtml/gtkhtml_150_image_magnification.diff create mode 100644 gtkhtml/gtkhtml_160_get_motion_hints.diff create mode 100644 gtkhtml/gtkhtml_170_text_selection_with_proper_doubleclick.diff create mode 100644 gtkhtml/gtkhtml_180_dont_click_link_when_panning.diff create mode 100644 gtkhtml/gtkhtml_190_proper_adjustment_values.diff create mode 100644 gtkhtml/gtkhtml_200_textslave_proper_disposal.diff create mode 100644 gtkhtml/gtkhtml_210_try_a11y.diff create mode 100644 gtkhtml/gtkhtml_220_link_visited.diff create mode 100644 gtkhtml/gtkhtml_230_remove_libart.diff create mode 100644 gtkhtml/gtkhtml_240_last_search_selected_area.diff create mode 100644 gtkhtml/gtkhtml_250_back_out_of_regex_search.diff create mode 100644 gtkhtml/gtkhtml_260_dolt_fix.diff create mode 100644 gtkhtml/gtkhtml_270_content_type_fix.diff create mode 100644 gtkhtml/gtkhtml_280_pop_element_by_type_crash_fix.diff create mode 100644 gtkhtml/gtkhtml_290_set_image_max_size.diff create mode 100644 gtkhtml/gtkhtml_300_coverity_findings.diff create mode 100644 gtkhtml/gtkhtml_310_some_workarounds_to_avoid_crash.diff create mode 100644 gtkhtml3.14_3.24.4.bb create mode 100644 libhildonhelp_2.0.5.bb create mode 100644 maemopad_2.4.bb diff --git a/gtkhtml/gtkhtml_050_check_string.diff b/gtkhtml/gtkhtml_050_check_string.diff new file mode 100644 index 0000000..bf782b3 --- /dev/null +++ b/gtkhtml/gtkhtml_050_check_string.diff @@ -0,0 +1,19 @@ +# Do not leak a string pointer +# +# Copyright (C) 2006 - 2009 Nokia Corporation. +# This file is distributed under the terms of GNU LGPL license, either version 2 +# of the License, or (at your option) any later version. +# +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4/gtkhtml/htmlengine.c +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-02-15 12:41:23.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-02-15 12:46:07.000000000 +0200 +@@ -5251,7 +5251,8 @@ + e->formTextArea = NULL; + e->inOption = FALSE; + e->inTextArea = FALSE; +- e->formText = g_string_new (""); ++ if (NULL == e->formText) ++ e->formText = g_string_new (""); + + e->flow = NULL; + diff --git a/gtkhtml/gtkhtml_090_dependency_removal.diff b/gtkhtml/gtkhtml_090_dependency_removal.diff new file mode 100644 index 0000000..795e7bf --- /dev/null +++ b/gtkhtml/gtkhtml_090_dependency_removal.diff @@ -0,0 +1,760 @@ +diff -r -U5 gtkhtml-3.24.4/config.h.in gtkhtml-3.24.4/config.h.in +--- gtkhtml-3.24.4/config.h.in 2008-09-22 04:21:36.000000000 +0200 ++++ gtkhtml-3.24.4/config.h.in 2008-10-16 10:00:20.000000000 +0200 +@@ -23,10 +23,12 @@ + #undef GETTEXT_PACKAGE + #undef GTKHTML_RELEASE + #undef GTKHTML_RELEASE_STRING + #undef HAVE_OLD_SOUP + ++#undef DISABLE_PRINTING ++#undef DISABLE_GNOME + + /* No deprecated bonobo functions */ + #undef BONOBO_DISABLE_DEPRECATED + + /* Editor API Version */ +diff -r -U5 gtkhtml-3.24.4/configure.in gtkhtml-3.24.4/configure.in +--- gtkhtml-3.24.4/configure.in 2008-09-21 15:40:43.000000000 +0200 ++++ gtkhtml-3.24.4/configure.in 2008-10-16 10:30:12.000000000 +0200 +@@ -3,10 +3,12 @@ + AC_INIT(gtkhtml/gtkhtml.c) + AM_CONFIG_HEADER(config.h) + + PACKAGE=gtkhtml + ++AC_PROG_MAKE_SET ++ + # Required Package Versions + m4_define([gtk_minimum_version], [2.12.0]) + m4_define([gail_minimum_version], [1.1.0]) + m4_define([gnome_icon_theme_minimum_version], [1.2.0]) + m4_define([libbonobo_minimum_version], [2.20.3]) +@@ -68,26 +70,93 @@ + esac + AC_MSG_RESULT([$os_win32]) + AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes]) + AC_SUBST(SOEXT) + +-GNOME_COMPILE_WARNINGS(yes) +-CFLAGS="$CFLAGS $warning_flags" ++dnl GNOME_COMPILE_WARNINGS(yes) ++dnl CFLAGS="$CFLAGS $warning_flags" + + AC_SUBST(CFLAGS) + AC_SUBST(CPPFLAGS) + AC_SUBST(LDFLAGS) + + AM_GLIB_GNU_GETTEXT + +-GAIL_MODULES="gail >= gail_minimum_version" +-PKG_CHECK_MODULES(GAIL, $GAIL_MODULES) +-AC_SUBST(GAIL_CFLAGS) +-AC_SUBST(GAIL_LIBS) +-AC_SUBST(GAIL_MODULES) ++dnl ++dnl do we want a11y support? ++dnl ++GAIL_MODULES="" ++AC_ARG_ENABLE(a11y, ++ [ --enable-a11y Enable Accessibility (requires gail) [default=yes]], ++ [ac_cv_enable_a11y=$enableval],[ac_cv_enable_a11y=yes]) ++AC_MSG_CHECKING([whether to enable a11y]) ++if test "$ac_cv_enable_a11y" = yes; then ++ AC_MSG_RESULT(yes) ++ GAIL_MODULES="gail >= gail_minimum_version" ++ PKG_CHECK_MODULES(GAIL, $GAIL_MODULES) ++ AC_SUBST(GAIL_CFLAGS) ++ AC_SUBST(GAIL_LIBS) ++ AC_SUBST(GAIL_MODULES) ++ A11Y_DIR="a11y" ++ AC_SUBST(A11Y_DIR) ++ A11Y_LA="../a11y/libgtkhtml-a11y.la" ++ AC_SUBST(A11Y_LA) ++else ++ AC_MSG_RESULT(no) ++ AC_DEFINE(DISABLE_A11Y) ++ CFLAGS="-DDISABLE_A11Y $CFLAGS" ++ PC_CFLAGS="-DDISABLE_A11Y $PC_CFLAGS" ++fi ++ ++ ++dnl ++dnl do we want printing support? ++dnl ++GNOMEPRINT_MODULES="" ++AC_ARG_ENABLE(printing, ++ [ --enable-printing Enable Printing [default=yes]], ++ [ac_cv_enable_printing=$enableval],[ac_cv_enable_printing=yes]) ++AC_MSG_CHECKING([whether to enable printing]) ++if test "$ac_cv_enable_printing" = yes; then ++ AC_MSG_RESULT(yes) ++ GNOME_TEST_PROGRAMS="gtest test-suite test-stress" ++else ++ AC_MSG_RESULT(no) ++ AC_DEFINE(DISABLE_PRINTING) ++ CFLAGS="-DDISABLE_PRINTING $CFLAGS" ++ PC_CFLAGS="-DDISABLE_PRINTING $PC_CFLAGS" ++fi ++AM_CONDITIONAL(HAVE_PRINTING, test x$ac_cv_enable_printing != xno) ++ ++dnl ++dnl do we want gnome support? ++dnl ++GNOME_MODULES="" ++AC_ARG_ENABLE(gnome, ++ [ --enable-gnome Enable Gnome (requires many things) [default=yes]], ++ [ac_cv_enable_gnome=$enableval],[ac_cv_enable_gnome=yes]) ++AC_MSG_CHECKING([whether to enable gnome]) ++if test "$ac_cv_enable_gnome" = yes; then ++ AC_MSG_RESULT(yes) ++ GNOME_MODULES="libgnomeui-2.0 >= libgnomeui_minimum_version" ++ ++ dnl ************************************************** ++ dnl * Gnome Icon Theme ++ dnl ************************************************** ++ PKG_CHECK_MODULES(GIT, gnome-icon-theme >= 1.2.0) ++else ++ GNOME_MODULES="" ++ AC_MSG_RESULT(no) ++ AC_DEFINE(DISABLE_GNOME) ++ CFLAGS="-DDISABLE_GNOME $CFLAGS" ++ PC_CFLAGS="-DDISABLE_GNOME $PC_CFLAGS" ++fi ++ ++dnl libglade only needed on windows? ++dnl GTKHTML_MODULES="$GNOME_MODULES $GAIL_MODULES libglade-2.0 >= libglade_minimum_version enchant iso-codes" ++GTKHTML_MODULES="$GNOME_MODULES $GAIL_MODULES gtk+-2.0 >= gtk_minimum_version gconf-2.0" + +-GTKHTML_MODULES="gtk+-2.0 >= gtk_minimum_version libgnomeui-2.0 >= libgnomeui_minimum_version libglade-2.0 >= libglade_minimum_version enchant gconf-2.0 iso-codes" + PKG_CHECK_MODULES(GTKHTML, $GTKHTML_MODULES) + AC_SUBST(GTKHTML_CFLAGS) + AC_SUBST(GTKHTML_LIBS) + AC_SUBST(GTKHTML_MODULES) + +@@ -96,13 +165,25 @@ + AC_HELP_STRING([--with-bonobo-editor], + [build the older Bonobo-based editor [[default=no]]]), + bonobo_editor="$withval", bonobo_editor="no") + if test "x$bonobo_editor" = "xyes"; then + EDITOR_MODULES="${GTKHTML_MODULES} libbonobo-2.0 >= libbonobo_minimum_version libbonoboui-2.0 >= libbonoboui_minimum_version" ++ # These are still needed for 'dist' targets. ++ BONOBO_IDL_INCLUDES="-I`$PKG_CONFIG --variable=idldir libbonobo-2.0` -I`$PKG_CONFIG --variable=idldir bonobo-activation-2.0`" ++ AC_SUBST(BONOBO_IDL_INCLUDES) ++ ORBIT_IDL="`$PKG_CONFIG --variable=orbit_idl ORBit-2.0`" ++ AC_SUBST(ORBIT_IDL) ++ + PKG_CHECK_MODULES(EDITOR, $EDITOR_MODULES) + AC_SUBST(EDITOR_CFLAGS) + AC_SUBST(EDITOR_LIBS) ++ ++ EDITOR_DIR="components" ++ AC_SUBST(EDITOR_DIR) ++else ++ AC_MSG_RESULT(no) ++ AC_DEFINE(DISABLE_EDITOR) + fi + AM_CONDITIONAL(BONOBO_EDITOR, test x$bonobo_editor = xyes) + + # Glade catalog files + AC_ARG_WITH(glade-catalog, +@@ -113,31 +194,20 @@ + if test "x$glade_catalog" = "xyes"; then + PKG_CHECK_MODULES(GLADEUI, gladeui-1.0) + fi + AM_CONDITIONAL(GLADE_CATALOG, test x$glade_catalog = xyes) + +-# These are still needed for 'dist' targets. +-BONOBO_IDL_INCLUDES="-I`$PKG_CONFIG --variable=idldir libbonobo-2.0` -I`$PKG_CONFIG --variable=idldir bonobo-activation-2.0`" +-AC_SUBST(BONOBO_IDL_INCLUDES) +-ORBIT_IDL="`$PKG_CONFIG --variable=orbit_idl ORBit-2.0`" +-AC_SUBST(ORBIT_IDL) +- + dnl ********************************** + dnl soup for testgtkhtml + dnl ********************************** + + PKG_CHECK_MODULES(SOUP, libsoup-2.4, have_soup="yes", have_soup="no") + AM_CONDITIONAL(HAVE_SOUP, test x$have_soup != xno) + AC_SUBST(SOUP_CFLAGS) + AC_SUBST(SOUP_LIBS) + + dnl ************************************************** +-dnl * Gnome Icon Theme +-dnl ************************************************** +-PKG_CHECK_MODULES(GIT, gnome-icon-theme >= gnome_icon_theme_minimum_version) +- +-dnl ************************************************** + dnl * iso-codes + dnl ************************************************** + + AC_MSG_CHECKING([for iso-codes package]) + have_iso_codes=no +@@ -214,10 +284,12 @@ + + AC_SUBST(GTKHTML_CURRENT) + AC_SUBST(GTKHTML_REVISION) + AC_SUBST(GTKHTML_AGE) + ++AC_SUBST(PC_CFLAGS) ++ + dnl ************** + dnl Done. + dnl ************** + + AC_OUTPUT([ +@@ -237,7 +309,12 @@ + + echo " + + Configuration: + ++ accessibility support: $ac_cv_enable_a11y ++ gnome-print support: $ac_cv_enable_printing ++ gnome support: $ac_cv_enable_gnome ++ bonobo-editor component: $bonobo_editor ++ + Editor component type: ${GNOME_GTKHTML_EDITOR_TYPE} + " +diff -r -U5 gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2008-10-16 09:59:50.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2008-10-16 10:53:23.000000000 +0200 +@@ -24,11 +24,17 @@ + + #include + #include + #include + ++#ifndef DISABLE_GNOME ++#include ++#endif ++ ++#ifndef DISABLE_A11Y + #include "../a11y/factory.h" ++#endif + + #include "htmlcolorset.h" + #include "htmlcluev.h" + #include "htmlcursor.h" + #include "htmldrawqueue.h" +@@ -67,11 +73,10 @@ + #include "gtkhtml-search.h" + #include "gtkhtml-stream.h" + #include "gtkhtml-private.h" + #include "gtkhtml-properties.h" + #include "math.h" +-#include + + enum DndTargetType { + DND_TARGET_TYPE_MESSAGE_RFC822, + DND_TARGET_TYPE_X_UID_LIST, + DND_TARGET_TYPE_TEXT_URI_LIST, +@@ -3044,11 +3049,14 @@ + html_class->scroll = scroll; + html_class->cursor_move = cursor_move; + html_class->command = command; + + add_bindings (klass); ++ ++#ifndef DISABLE_A11Y + gtk_html_accessibility_init (); ++#endif /* ndef DISABLE_A11Y */ + + filename = g_build_filename (PREFIX, "share", GTKHTML_RELEASE_STRING, "keybindingsrc.emacs", NULL); + gtk_rc_parse (filename); + g_free (filename); + html_class->emacs_bindings = gtk_binding_set_find ("gtkhtml-bindings-emacs"); +@@ -4053,11 +4061,11 @@ + g_return_val_if_fail (GTK_IS_HTML (html), NULL); + + return html->priv->base_url; + } + +- ++#ifndef DISABLE_PRINTING + /* Printing. */ + void + gtk_html_print_page (GtkHTML *html, GtkPrintContext *context) + { + g_return_if_fail (html != NULL); +@@ -4081,11 +4089,11 @@ + html_engine_print ( + html->engine, context, header_height, footer_height, + header_print, footer_print, user_data); + } + +- ++#endif /* ndef DISABLE_PRINTING */ + /* Editing. */ + + void + gtk_html_set_paragraph_style (GtkHTML *html, + GtkHTMLParagraphStyle style) +@@ -6075,11 +6083,11 @@ + void + gtk_html_set_images_blocking (GtkHTML *html, gboolean block) + { + html->engine->block_images = block; + } +- ++#ifndef DISABLE_PRINTING + gint + gtk_html_print_page_get_pages_num (GtkHTML *html, + GtkPrintContext *context, + gdouble header_height, + gdouble footer_height) +@@ -6103,10 +6111,11 @@ + return html_engine_print_operation_run ( + html->engine, operation, action, parent, + calc_header_height, calc_footer_height, + draw_header, draw_footer, user_data, error); + } ++#endif /* ndef DISABLE_PRINTING */ + + gboolean + gtk_html_has_undo (GtkHTML *html) + { + return html_undo_has_undo_steps (html->engine->undo); +diff -r -U5 gtkhtml-3.24.4/gtkhtml/gtkhtml-embedded.c gtkhtml-3.24.4/gtkhtml/gtkhtml-embedded.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml-embedded.c 2008-06-13 05:05:58.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml-embedded.c 2008-10-16 10:50:53.000000000 +0200 +@@ -117,11 +117,13 @@ + old_remove(container, child); + + gtk_html_embedded_changed(GTK_HTML_EMBEDDED(container)); + } + ++#ifndef DISABLE_PRINTING + typedef void (*draw_print_signal)(GtkObject *, gpointer, gpointer); ++#endif /* ndef DISABLE_PRINTING */ + typedef void (*draw_gdk_signal)(GtkObject *, gpointer, gpointer, gint, gint, gpointer); + + static void + draw_gdk_signal_marshaller (GClosure *closure, + GValue *return_value, +@@ -186,21 +188,21 @@ + G_STRUCT_OFFSET (GtkHTMLEmbeddedClass, draw_gdk), + NULL, NULL, + draw_gdk_signal_marshaller, G_TYPE_NONE, 4, + G_TYPE_POINTER, G_TYPE_POINTER, + G_TYPE_INT, G_TYPE_INT); +- ++#ifndef DISABLE_PRINTING + signals [DRAW_PRINT] = + g_signal_new ("draw_print", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (GtkHTMLEmbeddedClass, draw_print), + NULL, NULL, + g_cclosure_marshal_VOID__POINTER, + G_TYPE_NONE, 1, + G_TYPE_POINTER); +- ++#endif /* ndef DISABLE_PRINTING */ + gobject_class->finalize = gtk_html_embedded_finalize; + + widget_class->size_request = gtk_html_embedded_size_request; + widget_class->size_allocate = gtk_html_embedded_size_allocate; + +diff -r -U5 gtkhtml-3.24.4/gtkhtml/gtkhtml-embedded.h gtkhtml-3.24.4/gtkhtml/gtkhtml-embedded.h +--- gtkhtml-3.24.4/gtkhtml/gtkhtml-embedded.h 2008-07-18 08:18:37.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml-embedded.h 2008-10-16 10:00:55.000000000 +0200 +@@ -54,11 +54,13 @@ + GtkBinClass parent_class; + + void (*changed)(GtkHTMLEmbedded *); + void (*draw_gdk)(GtkHTMLEmbedded *, GdkPixmap *, GdkGC *, + gint, gint); ++#ifndef DISABLE_PRINTING + void (*draw_print)(GtkHTMLEmbedded *, GtkPrintContext *); ++#endif /* ndef DISABLE_PRINTING */ + }; + + /* FIXME: There needs to be a way for embedded objects in forms to encode + themselves for a form */ + +diff -r -U5 gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2008-08-18 06:54:55.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2008-10-16 10:49:41.000000000 +0200 +@@ -208,11 +208,11 @@ + + /* Animated Images */ + void gtk_html_set_animate (GtkHTML *html, + gboolean animate); + gboolean gtk_html_get_animate (const GtkHTML *html); +- ++#ifndef DISABLE_PRINTING + /* Printing support. */ + void gtk_html_print_page_with_header_footer (GtkHTML *html, + GtkPrintContext *context, + gdouble header_height, + gdouble footer_height, +@@ -233,11 +233,11 @@ + GtkHTMLPrintCalcHeight calc_footer_height, + GtkHTMLPrintDrawFunc draw_header, + GtkHTMLPrintDrawFunc draw_footer, + gpointer user_data, + GError **error); +- ++#endif /* ndef DISABLE_PRINTING */ + /* Title. */ + const gchar *gtk_html_get_title (GtkHTML *html); + void gtk_html_set_title (GtkHTML *html, const char *title); + + /* Anchors. */ +diff -r -U5 gtkhtml-3.24.4/gtkhtml/gtkhtml-types.h gtkhtml-3.24.4/gtkhtml/gtkhtml-types.h +--- gtkhtml-3.24.4/gtkhtml/gtkhtml-types.h 2008-04-11 13:14:42.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml-types.h 2008-10-16 10:47:22.000000000 +0200 +@@ -49,11 +49,11 @@ + /* FIXME 1st param should be Engine */ + typedef gboolean (* GtkHTMLSaveReceiverFn) (gpointer engine, + const gchar *data, + size_t len, + gpointer user_data); +- ++#ifndef DISABLE_PRINTING + typedef gint (*GtkHTMLPrintCalcHeight) (GtkHTML *html, + GtkPrintOperation *operation, + GtkPrintContext *context, + gpointer user_data); + typedef void (*GtkHTMLPrintDrawFunc) (GtkHTML *html, +@@ -63,7 +63,7 @@ + PangoRectangle *rec, + gpointer user_data); + + typedef void (*GtkHTMLPrintCallback) (GtkHTML *html, GtkPrintContext *print_context, + gdouble x, gdouble y, gdouble width, gdouble height, gpointer user_data); +- ++#endif /* ndef DISABLE_PRINTING */ + #endif +diff -r -U5 gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4/gtkhtml/htmlengine.c +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2008-10-16 09:59:50.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2008-10-16 10:02:08.000000000 +0200 +@@ -48,11 +48,13 @@ + #include "htmlengine-edit.h" + #include "htmlengine-edit-cursor.h" + #include "htmlengine-edit-movement.h" + #include "htmlengine-edit-cut-and-paste.h" + #include "htmlengine-edit-selection-updater.h" ++#ifndef DISABLE_PRINTING + #include "htmlengine-print.h" ++#endif /* ndef DISABLE_PRINTING */ + #include "htmlcolor.h" + #include "htmlinterval.h" + #include "htmlobject.h" + #include "htmlsettings.h" + #include "htmltext.h" +@@ -4382,13 +4384,13 @@ + + engine->selection_updater = html_engine_edit_selection_updater_new (engine); + + engine->search_info = NULL; + engine->need_spell_check = FALSE; +- ++#ifndef DISABLE_PRINTING + html_engine_print_set_min_split_index (engine, .75); +- ++#endif /* ndef DISABLE_PRINTING */ + engine->block = FALSE; + engine->block_images = FALSE; + engine->save_data = FALSE; + engine->saved_step_count = -1; + +diff -r -U5 gtkhtml-3.24.4/gtkhtml/htmlengine-print.c gtkhtml-3.24.4/gtkhtml/htmlengine-print.c +--- gtkhtml-3.24.4/gtkhtml/htmlengine-print.c 2008-04-11 13:14:42.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-print.c 2008-10-16 10:01:30.000000000 +0200 +@@ -18,10 +18,13 @@ + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + */ + + #include ++ ++#ifndef DISABLE_PRINTING ++ + #include + #include + #include "gtkhtml.h" + #include "gtkhtmldebug.h" + #include "gtkhtml-private.h" +@@ -511,5 +514,7 @@ + operation, "end-print", + G_CALLBACK (engine_print_end_print), &data); + + return gtk_print_operation_run (operation, action, parent, error); + } ++ ++#endif /* ndef DISABLE_PRINTING */ +diff -r -U5 gtkhtml-3.24.4/gtkhtml/htmlengine-print.h gtkhtml-3.24.4/gtkhtml/htmlengine-print.h +--- gtkhtml-3.24.4/gtkhtml/htmlengine-print.h 2008-04-11 13:14:42.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-print.h 2008-10-16 10:46:24.000000000 +0200 +@@ -20,10 +20,12 @@ + */ + + #ifndef _HTMLENGINE_PRINT_H + #define _HTMLENGINE_PRINT_H + ++#ifndef DISABLE_PRINTING ++ + #include + #include "htmlengine.h" + + void html_engine_print (HTMLEngine *engine, + GtkPrintContext *context, +@@ -48,7 +50,7 @@ + GtkHTMLPrintCalcHeight calc_footer_height, + GtkHTMLPrintDrawFunc draw_header, + GtkHTMLPrintDrawFunc draw_footer, + gpointer user_data, + GError **error); +- ++#endif /* ndef DISABLE_PRINTING */ + #endif +diff -r -U5 gtkhtml-3.24.4/gtkhtml/htmlframe.c gtkhtml-3.24.4/gtkhtml/htmlframe.c +--- gtkhtml-3.24.4/gtkhtml/htmlframe.c 2008-07-18 08:18:37.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlframe.c 2008-10-16 10:48:54.000000000 +0200 +@@ -165,11 +165,11 @@ + gint tx, gint ty) + { + HTMLFrame *frame = HTML_FRAME (o); + HTMLEngine *e = GTK_HTML (frame->html)->engine; + GdkRectangle paint; +- ++#ifndef DISABLE_PRINTING + if (GTK_OBJECT_TYPE (e->painter) == HTML_TYPE_PRINTER) { + gint pixel_size = html_painter_get_pixel_size (e->painter); + + if (!html_object_intersect (o, &paint, x, y, width, height)) + return; +@@ -178,25 +178,30 @@ + x, y, + width - pixel_size * (html_engine_get_left_border (e) + html_engine_get_right_border (e)), + height - pixel_size * (html_engine_get_top_border (e) + html_engine_get_bottom_border (e)), + tx + pixel_size * html_engine_get_left_border (e), ty + pixel_size * html_engine_get_top_border (e)); + } else ++#endif /* ndef DISABLE_PRINTING */ + (*HTML_OBJECT_CLASS (parent_class)->draw) (o, p, x, y, width, height, tx, ty); + } + + static void + set_painter (HTMLObject *o, HTMLPainter *painter) + { + HTMLFrame *frame; + + frame = HTML_FRAME (o); +- if (G_OBJECT_TYPE (GTK_HTML (frame->html)->engine->painter) != HTML_TYPE_PRINTER) { ++#ifndef DISABLE_PRINTING ++ if (G_OBJECT_TYPE (GTK_HTML (frame->html)->engine->painter) != HTML_TYPE_PRINTER) ++#endif /* ndef DISABLE_PRINTING */ + frame_set_gdk_painter (frame, GTK_HTML (frame->html)->engine->painter); +- } +- ++#ifdef DISABLE_PRINTING ++ html_engine_set_painter (GTK_HTML (frame->html)->engine, frame->gdk_painter); ++#else /* def DISABLE_PRINTING */ + html_engine_set_painter (GTK_HTML (frame->html)->engine, + GTK_OBJECT_TYPE (painter) != HTML_TYPE_PRINTER ? frame->gdk_painter : painter); ++#endif + } + + static void + forall (HTMLObject *self, + HTMLEngine *e, +diff -r -U5 gtkhtml-3.24.4/gtkhtml/htmliframe.c gtkhtml-3.24.4/gtkhtml/htmliframe.c +--- gtkhtml-3.24.4/gtkhtml/htmliframe.c 2008-07-18 08:18:37.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmliframe.c 2008-10-16 10:45:41.000000000 +0200 +@@ -164,10 +164,11 @@ + HTMLPainter *p, + gint x, gint y, + gint width, gint height, + gint tx, gint ty) + { ++#ifndef DISABLE_PRINTING + HTMLIFrame *iframe = HTML_IFRAME (o); + HTMLEngine *e = GTK_HTML (iframe->html)->engine; + GdkRectangle paint; + + if (GTK_OBJECT_TYPE (e->painter) == HTML_TYPE_PRINTER) { +@@ -180,25 +181,30 @@ + x, y, + width - pixel_size * (html_engine_get_left_border (e) + html_engine_get_right_border (e)), + height - pixel_size * (html_engine_get_top_border (e) + html_engine_get_bottom_border (e)), + tx + pixel_size * html_engine_get_left_border (e), ty + pixel_size * html_engine_get_top_border (e)); + } else ++#endif /* ndef DISABLE_PRINTING */ + (*HTML_OBJECT_CLASS (parent_class)->draw) (o, p, x, y, width, height, tx, ty); + } + + static void + set_painter (HTMLObject *o, HTMLPainter *painter) + { + HTMLIFrame *iframe; + + iframe = HTML_IFRAME (o); +- if (G_OBJECT_TYPE (GTK_HTML (iframe->html)->engine->painter) != HTML_TYPE_PRINTER) { ++#ifndef DISABLE_PRINTING ++ if (G_OBJECT_TYPE (GTK_HTML (iframe->html)->engine->painter) != HTML_TYPE_PRINTER) ++#endif + iframe_set_gdk_painter (iframe, GTK_HTML (iframe->html)->engine->painter); +- } +- ++#ifdef DISABLE_PRINTING ++ html_engine_set_painter (GTK_HTML (iframe->html)->engine, iframe->gdk_painter); ++#else /* def DISABLE_PRINTING */ + html_engine_set_painter (GTK_HTML (iframe->html)->engine, + G_OBJECT_TYPE (painter) != HTML_TYPE_PRINTER ? iframe->gdk_painter : painter); ++#endif /* ndef DISABLE_PRINTING */ + } + + static void + forall (HTMLObject *self, + HTMLEngine *e, +diff -r -U5 gtkhtml-3.24.4/gtkhtml/htmlimage.c gtkhtml-3.24.4/gtkhtml/htmlimage.c +--- gtkhtml-3.24.4/gtkhtml/htmlimage.c 2008-06-13 05:05:58.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlimage.c 2008-10-16 10:43:40.000000000 +0200 +@@ -383,14 +383,14 @@ + + if (painter->widget && GTK_IS_HTML (painter->widget)) + e = html_object_engine (HTML_OBJECT (image), GTK_HTML (painter->widget)->engine); + else + return; +- ++#ifndef DISABLE_PRINTING + if (HTML_IS_PRINTER (painter)) + return; +- ++#endif + p = HTML_GDK_PAINTER (painter); + /* printf ("draw_image_focus\n"); */ + + gdk_gc_set_foreground (p->gc, &html_colorset_get_color_allocated (e->settings->color_set, + painter, HTMLTextColor)->color); +diff -r -U5 gtkhtml-3.24.4/gtkhtml/htmlprinter.c gtkhtml-3.24.4/gtkhtml/htmlprinter.c +--- gtkhtml-3.24.4/gtkhtml/htmlprinter.c 2008-07-18 08:18:37.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlprinter.c 2008-10-16 10:02:28.000000000 +0200 +@@ -18,10 +18,13 @@ + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + */ + + #include ++ ++#ifndef DISABLE_PRINTING ++ + #include "gtkhtml-compat.h" + + #include + #include + +@@ -721,5 +724,7 @@ + painter = HTML_PAINTER (printer); + + printer->scale = scale; + painter->engine_to_pango = scale; + } ++ ++#endif /* ndef DISABLE_PRINTING */ +diff -r -U5 gtkhtml-3.24.4/gtkhtml/htmlprinter.h gtkhtml-3.24.4/gtkhtml/htmlprinter.h +--- gtkhtml-3.24.4/gtkhtml/htmlprinter.h 2008-07-18 08:18:37.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlprinter.h 2008-10-16 10:02:34.000000000 +0200 +@@ -23,10 +23,12 @@ + #define _HTMLPRINTER_H + + #include + #include "htmlpainter.h" + ++#ifndef DISABLE_PRINTING ++ + #define HTML_TYPE_PRINTER (html_printer_get_type ()) + #define HTML_PRINTER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), HTML_TYPE_PRINTER, HTMLPrinter)) + #define HTML_PRINTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), HTML_TYPE_PRINTER, HTMLPrinterClass)) + #define HTML_IS_PRINTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HTML_TYPE_PRINTER)) + #define HTML_IS_PRINTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), HTML_TYPE_PRINTER)) +@@ -56,6 +58,7 @@ + gdouble html_printer_scale_to_gnome_print (HTMLPrinter *printer, + gint x); + void html_printer_set_scale (HTMLPrinter *printer, + gdouble scale); + ++#endif /* ndef DISABLE_PRINTING */ + #endif /* _HTMLPRINTER_H */ +diff -r -U5 gtkhtml-3.24.4/gtkhtml/htmltextslave.c gtkhtml-3.24.4/gtkhtml/htmltextslave.c +--- gtkhtml-3.24.4/gtkhtml/htmltextslave.c 2008-04-11 13:14:42.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmltextslave.c 2008-10-16 10:42:53.000000000 +0200 +@@ -860,14 +860,14 @@ + + if (painter->widget && GTK_IS_HTML (painter->widget)) + e = html_object_engine (HTML_OBJECT (slave->owner), GTK_HTML (painter->widget)->engine); + else + return; +- ++#ifndef DISABLE_PRINTING + if (HTML_IS_PRINTER (painter)) + return; +- ++#endif /* ndef DISABLE_PRINTING */ + p = HTML_GDK_PAINTER (painter); + /* printf ("draw_text_focus\n"); */ + + gdk_gc_set_foreground (p->gc, &html_colorset_get_color_allocated (e->settings->color_set, + painter, HTMLTextColor)->color); +diff -r -U5 gtkhtml-3.24.4/gtkhtml/libgtkhtml.pc.in gtkhtml-3.24.4/gtkhtml/libgtkhtml.pc.in +--- gtkhtml-3.24.4/gtkhtml/libgtkhtml.pc.in 2008-04-11 13:14:42.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/libgtkhtml.pc.in 2008-10-16 10:02:54.000000000 +0200 +@@ -8,6 +8,6 @@ + Name: libgtkhtml + Description: libgtkhtml + Requires: @GTKHTML_MODULES@ + Version: @VERSION@ + Libs: -L${libdir} -lgtkhtml-@GTKHTML_API_VERSION@ +-Cflags: -I${includedir}/libgtkhtml-@GTKHTML_API_VERSION@ ++Cflags: -I${includedir}/libgtkhtml-@GTKHTML_API_VERSION@ @PC_CFLAGS@ +diff -r -U5 gtkhtml-3.24.4/gtkhtml/Makefile.am gtkhtml-3.24.4/gtkhtml/Makefile.am +--- gtkhtml-3.24.4/gtkhtml/Makefile.am 2008-05-12 09:18:34.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/Makefile.am 2008-10-16 10:33:55.000000000 +0200 +@@ -207,22 +207,25 @@ + htmlengine-edit-table.h \ + $(PLATFORM_DEP_SOURCES) \ + $(NULL) + + libgtkhtml_3_14_la_LDFLAGS = -version-info $(GTKHTML_CURRENT):$(GTKHTML_REVISION):$(GTKHTML_AGE) -no-undefined +-libgtkhtml_3_14_la_LIBADD = $(GTKHTML_LIBS) ../a11y/libgtkhtml-a11y.la $(GAIL_LIBS) $(REGEX_LIBS) ++libgtkhtml_3_14_la_LIBADD = $(GTKHTML_LIBS) $(A11Y_LA) $(GAIL_LIBS) $(REGEX_LIBS) + + dist-hook: + mkdir $(distdir)/tests + cp -f $(srcdir)/tests/*.html $(distdir)/tests + cp -f $(srcdir)/tests/*.jpg $(distdir)/tests + + if HAVE_SOUP + test_programs = testgtkhtml + endif +-noinst_PROGRAMS = $(test_programs) gtest test-suite test-stress ++if HAVE_PRINTING ++gnome_test_programs = gtest test-suite test-stress ++endif + ++noinst_PROGRAMS = $(test_programs) $(gnome_test_programs) + + testgtkhtml_SOURCES = \ + testgtkhtml.c \ + htmlurl.h \ + htmlurl.c +diff -r -U5 gtkhtml-3.24.4/Makefile.am gtkhtml-3.24.4/Makefile.am +--- gtkhtml-3.24.4/Makefile.am 2008-08-01 08:36:01.000000000 +0200 ++++ gtkhtml-3.24.4/Makefile.am 2008-10-16 10:03:52.000000000 +0200 +@@ -1,11 +1,10 @@ + SUBDIRS = \ +- a11y \ ++ $(A11Y_DIR) \ + gtkhtml \ +- components \ +- art \ +- po ++ $(EDITOR_DIR) \ ++ art + + CLEANFILES = \ + po/.intltool-merge-cache + + DISTCLEANFILES = \ diff --git a/gtkhtml/gtkhtml_100_dependency_removal_cleaning.diff b/gtkhtml/gtkhtml_100_dependency_removal_cleaning.diff new file mode 100644 index 0000000..aedb5e6 --- /dev/null +++ b/gtkhtml/gtkhtml_100_dependency_removal_cleaning.diff @@ -0,0 +1,140 @@ +# Set some defaults to off without entirely yanking them +# +# Copyright (C) 2006 - 2007 Nokia Corporation. +# This file is distributed under the terms of GNU LGPL license, either version 2 +# of the License, or (at your option) any later version. +# +diff -Nru gtkhtml-3.24.4/autogen.sh gtkhtml-3.24.4.mod8/autogen.sh +diff -Nru gtkhtml-3.24.4/autogen.sh gtkhtml-3.24.4.mod8/autogen.sh +--- gtkhtml-3.24.4/autogen.sh 1970-01-01 02:00:00.000000000 +0200 +--- gtkhtml-3.24.4/autogen.sh 1970-01-01 02:00:00.000000000 +0200 ++++ gtkhtml-3.24.4/autogen.sh 2007-02-16 11:21:27.000000000 +0200 ++++ gtkhtml-3.24.4/autogen.sh 2007-02-16 11:21:27.000000000 +0200 +@@ -0,0 +1,7 @@ ++#!/bin/sh ++ ++set -x ++aclocal ++autoconf ++autoheader ++automake --add-missing --foreign +d +diff -r -U5 gtkhtml-3.24.4/configure.in gtkhtml-3.24.4/configure.in +--- gtkhtml-3.24.4/configure.in 2008-10-16 10:57:08.000000000 +0200 ++++ gtkhtml-3.24.4/configure.in 2008-10-16 11:05:40.000000000 +0200 +@@ -84,12 +84,12 @@ + dnl + dnl do we want a11y support? + dnl + GAIL_MODULES="" + AC_ARG_ENABLE(a11y, +- [ --enable-a11y Enable Accessibility (requires gail) [default=yes]], +- [ac_cv_enable_a11y=$enableval],[ac_cv_enable_a11y=yes]) ++ [ --enable-a11y Enable Accessibility (requires gail) [default=no]], ++ [ac_cv_enable_a11y=$enableval],[ac_cv_enable_a11y=no]) + AC_MSG_CHECKING([whether to enable a11y]) + if test "$ac_cv_enable_a11y" = yes; then + AC_MSG_RESULT(yes) + GAIL_MODULES="gail >= gail_minimum_version" + PKG_CHECK_MODULES(GAIL, $GAIL_MODULES) +@@ -111,12 +111,12 @@ + dnl + dnl do we want printing support? + dnl + GNOMEPRINT_MODULES="" + AC_ARG_ENABLE(printing, +- [ --enable-printing Enable Printing [default=yes]], +- [ac_cv_enable_printing=$enableval],[ac_cv_enable_printing=yes]) ++ [ --enable-printing Enable Printing [default=no]], ++ [ac_cv_enable_printing=$enableval],[ac_cv_enable_printing=no]) + AC_MSG_CHECKING([whether to enable printing]) + if test "$ac_cv_enable_printing" = yes; then + AC_MSG_RESULT(yes) + GNOME_TEST_PROGRAMS="gtest test-suite test-stress" + else +@@ -130,12 +130,12 @@ + dnl + dnl do we want gnome support? + dnl + GNOME_MODULES="" + AC_ARG_ENABLE(gnome, +- [ --enable-gnome Enable Gnome (requires many things) [default=yes]], +- [ac_cv_enable_gnome=$enableval],[ac_cv_enable_gnome=yes]) ++ [ --enable-gnome Enable Gnome (requires many things) [default=no]], ++ [ac_cv_enable_gnome=$enableval],[ac_cv_enable_gnome=no]) + AC_MSG_CHECKING([whether to enable gnome]) + if test "$ac_cv_enable_gnome" = yes; then + AC_MSG_RESULT(yes) + GNOME_MODULES="libgnomeui-2.0 >= libgnomeui_minimum_version" + +@@ -198,14 +198,30 @@ + + dnl ********************************** + dnl soup for testgtkhtml + dnl ********************************** + +-PKG_CHECK_MODULES(SOUP, libsoup-2.4, have_soup="yes", have_soup="no") ++AC_ARG_ENABLE(soup, ++ [ --enable-soup Enable soup [default=no]], ++ [ac_cv_enable_soup=$enableval],[ac_cv_enable_soup=no]) ++AC_MSG_CHECKING([whether to enable soup]) ++if test "$ac_cv_enable_soup" = yes; then ++ AC_MSG_RESULT(yes) ++ PKG_CHECK_MODULES(SOUP, libsoup-2.4, have_soup="yes", have_soup="no") ++ if test "x$have_soup" = "xno"; then ++ PKG_CHECK_MODULES(SOUP, soup-2.0 >= 0.7.9, [have_soup="yes" ++ AC_DEFINE(HAVE_OLD_SOUP)], ++ have_soup="no") ++ fi ++ AC_SUBST(SOUP_CFLAGS) ++ AC_SUBST(SOUP_LIBS) ++else ++ have_soup="no" ++ AC_MSG_RESULT(no) ++ AC_DEFINE(DISABLE_SOUP) ++fi + AM_CONDITIONAL(HAVE_SOUP, test x$have_soup != xno) +-AC_SUBST(SOUP_CFLAGS) +-AC_SUBST(SOUP_LIBS) + + dnl ************************************************** + dnl * iso-codes + dnl ************************************************** + +@@ -313,8 +329,9 @@ + + accessibility support: $ac_cv_enable_a11y + gnome-print support: $ac_cv_enable_printing + gnome support: $ac_cv_enable_gnome + bonobo-editor component: $bonobo_editor ++ soup: $ac_cv_enable_soup + + Editor component type: ${GNOME_GTKHTML_EDITOR_TYPE} + " +Only in gtkhtml-3.24.4/gtkhtml: gtkhtml.c.orig +Only in gtkhtml-3.24.4/gtkhtml: htmlengine.c.orig +diff -r -U5 gtkhtml-3.24.4/Makefile.am gtkhtml-3.24.4/Makefile.am +--- gtkhtml-3.24.4/Makefile.am 2008-10-16 10:57:08.000000000 +0200 ++++ gtkhtml-3.24.4/Makefile.am 2008-10-16 11:07:40.000000000 +0200 +@@ -43,6 +43,20 @@ + BUGS \ + intltool-extract.in \ + intltool-update.in \ + intltool-merge.in + +-DISTCHECK_CONFIGURE_FLAGS = --with-bonobo-editor ++#DISTCHECK_CONFIGURE_FLAGS = --with-bonobo-editor ++#AK/22-12-05: common way to create .deb packages (Scratchbox) ++# ++deb: ++ dpkg-buildpackage -rfakeroot -uc -us -sa -D ++ ++# Use "dch -a" to add comment to debian/changelog ++# Use "dch -v xx" to add new version to debian/changelog ++# ++# DEBEMAIL and DEBFULLNAME better be defined...! :) ++# ++# DO NOT MANUALLY EDIT THE debian/changelog. ++# ++ver: ++ dch -v 999 diff --git a/gtkhtml/gtkhtml_110_panning.diff b/gtkhtml/gtkhtml_110_panning.diff new file mode 100644 index 0000000..d66dcf6 --- /dev/null +++ b/gtkhtml/gtkhtml_110_panning.diff @@ -0,0 +1,155 @@ +# Initial panning support +# +# Copyright (C) 2006 - 2007 Nokia Corporation. +# This file is distributed under the terms of GNU LGPL license, either version 2 +# of the License, or (at your option) any later version. +# +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-15 17:27:50.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-15 17:27:50.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-15 17:27:50.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-15 17:27:50.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 15:40:30.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 15:40:30.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 15:40:30.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 15:40:30.000000000 +0200 +@@ -1679,6 +1679,35 @@ + engine = GTK_HTML (widget)->engine; + if (GTK_HTML (widget)->in_selection_drag && html_engine_get_editable (engine)) + html_engine_jump_at (engine, x, y); ++ ++ /* (TL 18-Nov-05) Added panning feature */ ++ if (GTK_HTML (widget)->panning) { ++ GtkAdjustment *adj; ++ gint dx, dy; ++ gdouble value; ++ ++ dx = x - GTK_HTML (widget)->lastx; ++ dy = y - GTK_HTML (widget)->lasty; ++ ++ /* Vertical panning */ ++ adj = gtk_layout_get_vadjustment(GTK_LAYOUT(widget)); ++ value = adj->value - (gdouble) dy; ++ if (value < adj->lower) ++ value = adj->lower; ++ else if (value > (adj->upper - adj->page_size)) ++ value = adj->upper - adj->page_size; ++ gtk_adjustment_set_value(adj, value); ++ ++ /* Horizontal panning */ ++ adj = gtk_layout_get_hadjustment(GTK_LAYOUT(widget)); ++ value = adj->value - (gdouble) dx; ++ if (value < adj->lower) ++ value = adj->lower; ++ else if (value > (adj->upper - adj->page_size)) ++ value = adj->upper - adj->page_size; ++ gtk_adjustment_set_value(adj, value); ++ } ++ + return TRUE; + } + +@@ -1790,7 +1819,13 @@ + } + break; + case 1: +- html->in_selection_drag = TRUE; ++ /*html->in_selection_drag = TRUE;*/ ++ /* (TL 18-Nov-05) First click starts panning, not selection */ ++ html->in_selection_drag = FALSE; ++ html->panning = TRUE; ++ html->lastx = x; ++ html->lasty = y; ++ + if (html_engine_get_editable (engine)) { + HTMLObject *obj; + +@@ -1856,13 +1891,19 @@ + } + } else if (event->button == 1 && html->allow_selection) { + if (event->type == GDK_2BUTTON_PRESS) { +- html->in_selection_drag = FALSE; +- gtk_html_select_word (html); ++ /*html->in_selection_drag = FALSE; ++ gtk_html_select_word (html);*/ ++ /* (TL 18-Nov-05) Second click starts selection and stops panning */ ++ html->in_selection_drag = TRUE; ++ html->panning = FALSE; + html->in_selection = TRUE; + } + else if (event->type == GDK_3BUTTON_PRESS) { +- html->in_selection_drag = FALSE; +- gtk_html_select_line (html); ++ /*html->in_selection_drag = FALSE; ++ gtk_html_select_line (html);*/ ++ /* (TL 18-Nov-05) Third click starts selection and stops panning */ ++ html->in_selection_drag = TRUE; ++ html->panning = FALSE; + html->in_selection = TRUE; + } + } +@@ -1909,6 +1950,8 @@ + html_engine_jump_at (engine, x, y); + + html->in_selection_drag = FALSE; ++ /* (TL 18-Nov-05) Stop panning on button release */ ++ html->panning = FALSE; + + if (!html->priv->dnd_in_progress + && html->pointer_url != NULL && ! html->in_selection) { +@@ -1951,7 +1994,7 @@ + } + + html->priv->need_im_reset = TRUE; +- gtk_im_context_focus_in (html->priv->im_context); ++ //gtk_im_context_focus_in (html->priv->im_context); // (TL 20-Oct-05) Kludge to focus issues + + gtk_html_keymap_direction_changed (gdk_keymap_get_for_display (gtk_widget_get_display (widget)), + html); +@@ -3448,6 +3491,11 @@ + html->selection_x1 = 0; + html->selection_y1 = 0; + ++ /* (TL 18-Nov-05) For panning */ ++ html->panning = FALSE; ++ html->lastx = 0; ++ html->lasty = 0; ++ + html->in_selection = FALSE; + html->in_selection_drag = FALSE; + +Only in gtkhtml-3.24.4/gtkhtml: gtkhtml.c.orig +Only in gtkhtml-3.24.4/gtkhtml: gtkhtml.c.orig +Only in gtkhtml-3.24.4/gtkhtml: gtkhtml.c.orig +Only in gtkhtml-3.24.4/gtkhtml: gtkhtml.c.orig +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-15 17:42:33.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-15 17:42:33.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-15 17:42:33.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-15 17:42:33.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-16 15:40:30.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-16 15:40:30.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-16 15:40:30.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-16 15:40:30.000000000 +0200 +@@ -58,6 +58,11 @@ + + gint selection_x1, selection_y1; + ++ /* (TL 18-Nov-05) Panning variables */ ++ gboolean panning; ++ gint lastx; ++ gint lasty; ++ + guint in_selection : 1; + guint in_selection_drag : 1; + +Only in gtkhtml-3.24.4/gtkhtml: gtkhtml.h.orig +Only in gtkhtml-3.24.4/gtkhtml: gtkhtml.h.orig +Only in gtkhtml-3.24.4/gtkhtml: gtkhtml.h.orig +Only in gtkhtml-3.24.4/gtkhtml: gtkhtml.h.orig diff --git a/gtkhtml/gtkhtml_120_text_selection.diff b/gtkhtml/gtkhtml_120_text_selection.diff new file mode 100644 index 0000000..7b8a89c --- /dev/null +++ b/gtkhtml/gtkhtml_120_text_selection.diff @@ -0,0 +1,104 @@ +# Double-click initiates text selection +# +# Copyright (C) 2006 - 2007 Nokia Corporation. +# This file is distributed under the terms of GNU LGPL license, either version 2 +# of the License, or (at your option) any later version. +# +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 15:40:30.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 15:40:30.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 15:40:30.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 15:40:30.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 15:56:22.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 15:56:22.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 15:56:22.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 15:56:22.000000000 +0200 +@@ -193,6 +193,9 @@ + /* Interval for scrolling during selection. */ + #define SCROLL_TIMEOUT_INTERVAL 10 + ++/* Mouse move threshold for doubleclick check */ ++#define MOUSE_DBLCLK_THRESHOLD 10 ++ + + GtkHTMLParagraphStyle + clueflow_style_to_paragraph_style (HTMLClueFlowStyle style, HTMLListType item_type) +@@ -1673,6 +1676,18 @@ + + gdk_window_get_pointer (GTK_LAYOUT (widget)->bin_window, &x, &y, NULL); + ++ /* If there is only a small motion from the origin and simple ++ doubleclick is active, abort the motion, otherwise clear simple_dblclick flag */ ++ if (GTK_HTML (widget)->simple_dblclick) { ++ GtkHTML *html = GTK_HTML (widget); ++ ++ if (abs(x - html->selection_x1) <= MOUSE_DBLCLK_THRESHOLD && ++ abs(y - html->selection_y1) <= MOUSE_DBLCLK_THRESHOLD) ++ return TRUE; ++ ++ html->simple_dblclick = FALSE; ++ } ++ + if (!mouse_change_pos (widget, window, x, y, event->state)) + return FALSE; + +@@ -1897,6 +1912,10 @@ + html->in_selection_drag = TRUE; + html->panning = FALSE; + html->in_selection = TRUE; ++ /* Check for simple double click, for selecting a word */ ++ html->simple_dblclick = TRUE; ++ html->selection_x1 = x; ++ html->selection_y1 = y; + } + else if (event->type == GDK_3BUTTON_PRESS) { + /*html->in_selection_drag = FALSE; +@@ -1935,7 +1954,8 @@ + + engine = html->engine; + +- if (html->in_selection) { ++ /* If it is a simple doubleclick don't allow the selection */ ++ if (html->in_selection && !html->simple_dblclick) { + html_engine_update_selection_active_state (html->engine, html->priv->event_time); + if (html->in_selection_drag) + html_engine_select_region (engine, html->selection_x1, html->selection_y1, +@@ -1961,6 +1981,12 @@ + html_text_set_link_visited (HTML_TEXT(focus_object), focus_object_offset, html->engine, TRUE); + } + } ++ ++ /* If it was a simple doubleclick select a word */ ++ if (html->simple_dblclick) { ++ html->simple_dblclick = FALSE; ++ gtk_html_select_word(html); ++ } + } + + html->in_selection = FALSE; +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-16 15:40:30.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-16 15:40:30.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-16 15:40:30.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-16 15:40:30.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-16 15:56:22.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-16 15:56:22.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-16 15:56:22.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-02-16 15:56:22.000000000 +0200 +@@ -68,6 +68,10 @@ + + guint debug : 1; + guint allow_selection : 1; ++ ++ /* Dbl-clk variables */ ++ ++ guint simple_dblclick : 1; + + guint hadj_connection; + guint vadj_connection; diff --git a/gtkhtml/gtkhtml_140_const_patch.diff b/gtkhtml/gtkhtml_140_const_patch.diff new file mode 100644 index 0000000..2d47322 --- /dev/null +++ b/gtkhtml/gtkhtml_140_const_patch.diff @@ -0,0 +1,157 @@ +# Declare some variables as const to silence the compiler +# +# Copyright (C) 2006 - 2007 Nokia Corporation. +# This file is distributed under the terms of GNU LGPL license, either version 2 +# of the License, or (at your option) any later version. +# +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 16:29:01.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 16:29:01.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 16:29:01.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 16:29:01.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-16 16:44:08.000000000 +0200 +@@ -92,7 +92,7 @@ + DND_TARGET_TYPE_STRING, + }; + +-static GtkTargetEntry dnd_link_sources [] = { ++static const GtkTargetEntry dnd_link_sources [] = { + { "message/rfc822", 0, DND_TARGET_TYPE_MESSAGE_RFC822 }, + { "x-uid-list", 0, DND_TARGET_TYPE_X_UID_LIST }, + { "text/uri-list", 0, DND_TARGET_TYPE_TEXT_URI_LIST }, +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c 2007-02-12 08:57:38.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c 2007-02-12 08:57:38.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c 2007-02-12 08:57:38.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c 2007-02-12 08:57:38.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml-properties.c 2007-02-16 16:44:08.000000000 +0200 +@@ -136,7 +136,7 @@ + + /* enums */ + +-static GEnumValue _gtk_html_cursor_skip_values[] = { ++static const GEnumValue _gtk_html_cursor_skip_values[] = { + { GTK_HTML_CURSOR_SKIP_ONE, "GTK_HTML_CURSOR_SKIP_ONE", "one" }, + { GTK_HTML_CURSOR_SKIP_WORD, "GTK_HTML_CURSOR_SKIP_WORD", "word" }, + { GTK_HTML_CURSOR_SKIP_PAGE, "GTK_HTML_CURSOR_SKIP_WORD", "page" }, +@@ -155,7 +155,7 @@ + return cursor_skip_type; + } + +-static GEnumValue _gtk_html_command_values[] = { ++static const GEnumValue _gtk_html_command_values[] = { + { GTK_HTML_COMMAND_UNDO, "GTK_HTML_COMMAND_UNDO", "undo" }, + { GTK_HTML_COMMAND_REDO, "GTK_HTML_COMMAND_REDO", "redo" }, + { GTK_HTML_COMMAND_COPY, "GTK_HTML_COMMAND_COPY", "copy" }, +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c +--- gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c 2007-02-09 21:54:58.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c 2007-02-09 21:54:58.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c 2007-02-09 21:54:58.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c 2007-02-09 21:54:58.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cursor.c 2007-02-16 16:44:08.000000000 +0200 +@@ -35,18 +35,18 @@ + + #define BLINK_TIMEOUT 500 + +-static GdkColor table_stipple_active_on = { 0, 0, 0, 0xffff }; +-static GdkColor table_stipple_active_off = { 0, 0xffff, 0xffff, 0xffff }; +-static GdkColor table_stipple_non_active_on = { 0, 0xaaaa, 0xaaaa, 0xaaaa }; +-static GdkColor table_stipple_non_active_off = { 0, 0xffff, 0xffff, 0xffff }; +- +-static GdkColor cell_stipple_active_on = { 0, 0x7fff, 0x7fff, 0 }; +-static GdkColor cell_stipple_active_off = { 0, 0xffff, 0xffff, 0xffff }; +-static GdkColor cell_stipple_non_active_on = { 0, 0x7aaa, 0x7aaa, 0x7aaa }; +-static GdkColor cell_stipple_non_active_off = { 0, 0xffff, 0xffff, 0xffff }; ++static const GdkColor table_stipple_active_on = { 0, 0, 0, 0xffff }; ++static const GdkColor table_stipple_active_off = { 0, 0xffff, 0xffff, 0xffff }; ++static const GdkColor table_stipple_non_active_on = { 0, 0xaaaa, 0xaaaa, 0xaaaa }; ++static const GdkColor table_stipple_non_active_off = { 0, 0xffff, 0xffff, 0xffff }; ++ ++static const GdkColor cell_stipple_active_on = { 0, 0x7fff, 0x7fff, 0 }; ++static const GdkColor cell_stipple_active_off = { 0, 0xffff, 0xffff, 0xffff }; ++static const GdkColor cell_stipple_non_active_on = { 0, 0x7aaa, 0x7aaa, 0x7aaa }; ++static const GdkColor cell_stipple_non_active_off = { 0, 0xffff, 0xffff, 0xffff }; + +-static GdkColor image_stipple_active_on = { 0, 0xffff, 0, 0 }; +-static GdkColor image_stipple_active_off = { 0, 0xffff, 0xffff, 0xffff }; ++static const GdkColor image_stipple_active_on = { 0, 0xffff, 0, 0 }; ++static const GdkColor image_stipple_active_off = { 0, 0xffff, 0xffff, 0xffff }; + + void + html_engine_hide_cursor (HTMLEngine *engine) +@@ -110,7 +110,7 @@ + + static void + draw_cursor_rectangle (HTMLEngine *e, gint x1, gint y1, gint x2, gint y2, +- GdkColor *on_color, GdkColor *off_color, ++ const GdkColor *on_color, const GdkColor *off_color, + gint offset) + { + GdkGC *gc; +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c +--- gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c 2007-01-03 17:19:57.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-edit-cut-and-paste.c 2007-02-16 16:44:08.000000000 +0200 +@@ -1253,9 +1253,9 @@ + html_engine_thaw (e); + } + +-static char *picto_chars = "DO)(|/PQ\0:-\0:\0:-\0:\0:;=-\0:;\0:-~\0:\0:\0:-\0:\0:-\0:\0:-\0:\0:-\0:\0"; +-static gint picto_states [] = { 9, 14, 19, 27, 35, 40, 45, 50, 0, -1, 12, 0, -1, 0, -2, 17, 0, -2, 0, -3, -4, -5, 24, 0, -3, -4, 0, -6, 31, 33, 0, -6, 0, -11, 0, -8, 38, 0, -8, 0, -9, 43, 0, -9, 0, -10, 48, 0, -10, 0, -12, 53, 0, -12, 0}; +-static gchar *picto_icon_names [] = { ++static const char *picto_chars = "DO)(|/PQ\0:-\0:\0:-\0:\0:;=-\0:;\0:-~\0:\0:\0:-\0:\0:-\0:\0:-\0:\0:-\0:\0"; ++static const gint picto_states [] = { 9, 14, 19, 27, 35, 40, 45, 50, 0, -1, 12, 0, -1, 0, -2, 17, 0, -2, 0, -3, -4, -5, 24, 0, -3, -4, 0, -6, 31, 33, 0, -6, 0, -11, 0, -8, 38, 0, -8, 0, -9, 43, 0, -9, 0, -10, 48, 0, -10, 0, -12, 53, 0, -12, 0}; ++static const gchar *picto_icon_names [] = { + "stock_smiley-6", + "stock_smiley-5", + "stock_smiley-1", +diff -ru gtkhtml-3.24.4/gtkhtml/htmlentity.c gtkhtml-3.24.4/gtkhtml/htmlentity.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlentity.c gtkhtml-3.24.4/gtkhtml/htmlentity.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlentity.c gtkhtml-3.24.4/gtkhtml/htmlentity.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlentity.c gtkhtml-3.24.4/gtkhtml/htmlentity.c +--- gtkhtml-3.24.4/gtkhtml/htmlentity.c 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlentity.c 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlentity.c 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlentity.c 2007-01-03 17:19:57.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlentity.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlentity.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlentity.c 2007-02-16 16:44:08.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlentity.c 2007-02-16 16:44:08.000000000 +0200 +@@ -37,7 +37,10 @@ + }; + typedef struct _EntityEntry EntityEntry; + +-static EntityEntry entity_table[] = { ++/* FIXME: why not just sort these and use bsearch() instead of creating ++ * an additional glib hash table? ++ */ ++static const EntityEntry entity_table[] = { + + /* Latin1 */ + { 160, "nbsp" }, diff --git a/gtkhtml/gtkhtml_150_image_magnification.diff b/gtkhtml/gtkhtml_150_image_magnification.diff new file mode 100644 index 0000000..1a01813 --- /dev/null +++ b/gtkhtml/gtkhtml_150_image_magnification.diff @@ -0,0 +1,126 @@ +diff -r -U5 gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2008-10-16 11:45:07.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2008-10-16 11:42:21.000000000 +0200 +@@ -6048,12 +6048,14 @@ + html_font_manager_set_magnification (>K_HTML (HTML_FRAME (o)->html)->engine->painter->font_manager, + *(gdouble *) data); + } else if (HTML_IS_IFRAME (o)) { + html_font_manager_set_magnification (>K_HTML (HTML_IFRAME (o)->html)->engine->painter->font_manager, + *(gdouble *) data); +- } else if (HTML_IS_TEXT (o)) +- html_text_calc_font_size (HTML_TEXT (o), e); ++ } else if (HTML_IS_TEXT (o)) { ++ html_text_calc_font_size (HTML_TEXT (o), e); ++ } else if (HTML_IS_IMAGE (o)) ++ html_image_set_magnification (HTML_IMAGE (o), (*((gdouble *)data))) ; + } + + void + gtk_html_set_magnification (GtkHTML *html, gdouble magnification) + { +diff -r -U5 gtkhtml-3.24.4/gtkhtml/htmlimage.c gtkhtml-3.24.4/gtkhtml/htmlimage.c +--- gtkhtml-3.24.4/gtkhtml/htmlimage.c 2008-10-16 11:45:06.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlimage.c 2008-10-16 11:42:26.000000000 +0200 +@@ -70,10 +70,17 @@ + static gint html_image_pointer_update (HTMLImagePointer *ip); + static void html_image_pointer_start_animation (HTMLImagePointer *ip); + + static GdkPixbuf * html_image_factory_get_missing (HTMLImageFactory *factory); + ++void ++html_image_set_magnification (HTMLImage *image, gdouble new_magnification) ++{ ++ if (NULL == image) return ; ++ image->magnification = new_magnification ; ++} ++ + guint + html_image_get_actual_width (HTMLImage *image, HTMLPainter *painter) + { + GdkPixbufAnimation *anim = image->image_ptr->animation; + gint pixel_size = painter ? html_painter_get_pixel_size (painter) : 1; +@@ -81,17 +88,17 @@ + + if (image->percent_width) { + /* The cast to `gdouble' is to avoid overflow (eg. when + printing). */ + width = ((gdouble) HTML_OBJECT (image)->max_width +- * image->specified_width) / 100; ++ * image->specified_width) / 100 * image->magnification; + } else if (image->specified_width > 0) { +- width = image->specified_width * pixel_size; ++ width = image->specified_width * pixel_size * image->magnification; + } else if (image->image_ptr == NULL || anim == NULL) { +- width = DEFAULT_SIZE * pixel_size; ++ width = DEFAULT_SIZE * pixel_size * image->magnification; + } else { +- width = gdk_pixbuf_animation_get_width (anim) * pixel_size; ++ width = gdk_pixbuf_animation_get_width (anim) * pixel_size * image->magnification; + + if (image->specified_height > 0 || image->percent_height) { + double scale; + + scale = ((double) html_image_get_actual_height (image, painter)) +@@ -114,17 +121,17 @@ + + if (image->percent_height) { + /* The cast to `gdouble' is to avoid overflow (eg. when + printing). */ + height = ((gdouble) html_engine_get_view_height (image->image_ptr->factory->engine) +- * image->specified_height) / 100; ++ * image->specified_height) / 100 * image->magnification; + } else if (image->specified_height > 0) { +- height = image->specified_height * pixel_size; ++ height = image->specified_height * pixel_size * image->magnification; + } else if (image->image_ptr == NULL || anim == NULL) { +- height = DEFAULT_SIZE * pixel_size; ++ height = DEFAULT_SIZE * pixel_size * image->magnification; + } else { +- height = gdk_pixbuf_animation_get_height (anim) * pixel_size; ++ height = gdk_pixbuf_animation_get_height (anim) * pixel_size * image->magnification; + + if (image->specified_width > 0 || image->percent_width) { + double scale; + + scale = ((double) html_image_get_actual_width (image, painter)) +@@ -852,11 +859,11 @@ + image->vspace = 0; + + if (valign == HTML_VALIGN_NONE) + valign = HTML_VALIGN_BOTTOM; + image->valign = valign; +- ++ image->magnification = 1.0 ; + image->image_ptr = html_image_factory_register (imf, image, filename, reload); + } + + HTMLObject * + html_image_new (HTMLImageFactory *imf, +diff -r -U5 gtkhtml-3.24.4/gtkhtml/htmlimage.h gtkhtml-3.24.4/gtkhtml/htmlimage.h +--- gtkhtml-3.24.4/gtkhtml/htmlimage.h 2008-06-13 05:05:58.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlimage.h 2008-10-16 11:44:16.000000000 +0200 +@@ -71,10 +71,11 @@ + gchar *url; + gchar *target; + gchar *alt; + gchar *usemap; + gchar *final_url; ++ gdouble magnification; + }; + + struct _HTMLImageClass { + HTMLObjectClass parent_class; + }; +@@ -139,10 +140,12 @@ + const gchar *url); + guint html_image_get_actual_width (HTMLImage *image, + HTMLPainter *painter); + guint html_image_get_actual_height (HTMLImage *image, + HTMLPainter *painter); ++void html_image_set_magnification (HTMLImage *image, ++ gdouble new_magnification) ; + /* FIXME move to htmlimagefactory.c */ + HTMLImageFactory *html_image_factory_new (HTMLEngine *e); + void html_image_factory_free (HTMLImageFactory *factory); + void html_image_factory_cleanup (HTMLImageFactory *factory); /* Does gc etc. - removes unused image entries */ + void html_image_factory_stop_animations (HTMLImageFactory *factory); diff --git a/gtkhtml/gtkhtml_160_get_motion_hints.diff b/gtkhtml/gtkhtml_160_get_motion_hints.diff new file mode 100644 index 0000000..d547f88 --- /dev/null +++ b/gtkhtml/gtkhtml_160_get_motion_hints.diff @@ -0,0 +1,27 @@ +# Use proper function (gdk_device_get_state) to get next motion hint +# +# Copyright (C) 2006 - 2007 Nokia Corporation. +# This file is distributed under the terms of GNU LGPL license, either version 2 +# of the License, or (at your option) any later version. +# +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.9.1.mod/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.9.1.mod/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.9.1.mod/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.9.1.mod/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2006-12-04 12:43:55.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2006-12-04 12:43:55.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2006-12-04 12:43:55.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2006-12-04 12:43:55.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2006-12-05 09:09:51.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2006-12-05 09:09:51.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2006-12-05 09:09:51.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2006-12-05 09:09:51.000000000 +0200 +@@ -1611,6 +1611,8 @@ + widget = shift_to_iframe_parent (widget, &x, &y); + + gdk_window_get_pointer (GTK_LAYOUT (widget)->bin_window, &x, &y, NULL); ++ if (event->is_hint) ++ gdk_device_get_state (event->device, GTK_LAYOUT (widget)->bin_window, NULL, NULL) ; + + /* If there is only a small motion from the origin and simple + doubleclick is active, abort the motion, otherwise clear simple_dblclick flag */ diff --git a/gtkhtml/gtkhtml_170_text_selection_with_proper_doubleclick.diff b/gtkhtml/gtkhtml_170_text_selection_with_proper_doubleclick.diff new file mode 100644 index 0000000..9694899 --- /dev/null +++ b/gtkhtml/gtkhtml_170_text_selection_with_proper_doubleclick.diff @@ -0,0 +1,35 @@ +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.9.1.new/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.9.1.new/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.9.1.new/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.9.1.new/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-01-22 10:35:40.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-01-22 10:35:40.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-01-22 10:35:40.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-01-22 10:35:40.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-01-22 10:52:26.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-01-22 10:52:26.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-01-22 10:52:26.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-01-22 10:52:26.000000000 +0200 +@@ -1598,6 +1598,11 @@ + GdkWindow *window = widget->window; + HTMLEngine *engine; + gint x, y; ++ guint mouse_double_click_threshold = MOUSE_DBLCLK_THRESHOLD ; ++ GtkSettings *gtk_settings = gtk_widget_get_settings (widget) ; ++ ++ if (NULL != gtk_settings) ++ g_object_get (G_OBJECT (gtk_settings), "gtk-double-click-distance", &mouse_double_click_threshold, NULL) ; + + g_return_val_if_fail (widget != NULL, 0); + g_return_val_if_fail (GTK_IS_HTML (widget), 0); +@@ -1619,8 +1624,8 @@ + if (GTK_HTML (widget)->simple_dblclick) { + GtkHTML *html = GTK_HTML (widget); + +- if (abs(x - html->selection_x1) <= MOUSE_DBLCLK_THRESHOLD && +- abs(y - html->selection_y1) <= MOUSE_DBLCLK_THRESHOLD) ++ if (abs(x - html->selection_x1) <= mouse_double_click_threshold && ++ abs(y - html->selection_y1) <= mouse_double_click_threshold) + return TRUE; + + html->simple_dblclick = FALSE; diff --git a/gtkhtml/gtkhtml_180_dont_click_link_when_panning.diff b/gtkhtml/gtkhtml_180_dont_click_link_when_panning.diff new file mode 100644 index 0000000..0a7553d --- /dev/null +++ b/gtkhtml/gtkhtml_180_dont_click_link_when_panning.diff @@ -0,0 +1,220 @@ +diff -r -U5 gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2008-10-16 12:07:24.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2008-10-16 12:09:36.000000000 +0200 +@@ -1712,10 +1712,11 @@ + GdkWindow *window = widget->window; + HTMLEngine *engine; + gint x, y; + guint mouse_double_click_threshold = MOUSE_DBLCLK_THRESHOLD ; + GtkSettings *gtk_settings = gtk_widget_get_settings (widget) ; ++ GtkHTML *html = NULL ; + + if (NULL != gtk_settings) + g_object_get (G_OBJECT (gtk_settings), "gtk-double-click-distance", &mouse_double_click_threshold, NULL) ; + + g_return_val_if_fail (widget != NULL, 0); +@@ -1731,55 +1732,60 @@ + + gdk_window_get_pointer (GTK_LAYOUT (widget)->bin_window, &x, &y, NULL); + if (event->is_hint) + gdk_device_get_state (event->device, GTK_LAYOUT (widget)->bin_window, NULL, NULL) ; + ++ html = GTK_HTML (widget) ; ++ + /* If there is only a small motion from the origin and simple + doubleclick is active, abort the motion, otherwise clear simple_dblclick flag */ +- if (GTK_HTML (widget)->simple_dblclick) { +- GtkHTML *html = GTK_HTML (widget); +- ++ if (html->simple_dblclick) { + if (abs(x - html->selection_x1) <= mouse_double_click_threshold && + abs(y - html->selection_y1) <= mouse_double_click_threshold) + return TRUE; + + html->simple_dblclick = FALSE; + } + + if (!mouse_change_pos (widget, window, x, y, event->state)) + return FALSE; + +- engine = GTK_HTML (widget)->engine; +- if (GTK_HTML (widget)->in_selection_drag && html_engine_get_editable (engine)) ++ engine = html->engine; ++ if (html->in_selection_drag && html_engine_get_editable (engine)) + html_engine_jump_at (engine, x, y); + + /* (TL 18-Nov-05) Added panning feature */ +- if (GTK_HTML (widget)->panning) { ++ if (html->panning) { + GtkAdjustment *adj; + gint dx, dy; + gdouble value; + +- dx = x - GTK_HTML (widget)->lastx; +- dy = y - GTK_HTML (widget)->lasty; ++ dx = x - html->lastx; ++ dy = y - html->lasty; + + /* Vertical panning */ + adj = gtk_layout_get_vadjustment(GTK_LAYOUT(widget)); + value = adj->value - (gdouble) dy; + if (value < adj->lower) + value = adj->lower; + else if (value > (adj->upper - adj->page_size)) + value = adj->upper - adj->page_size; ++ if (ABS (html->y_amount_panned) < mouse_double_click_threshold) ++ html->y_amount_panned += (gint)(value - adj->value) ; + gtk_adjustment_set_value(adj, value); + + /* Horizontal panning */ + adj = gtk_layout_get_hadjustment(GTK_LAYOUT(widget)); + value = adj->value - (gdouble) dx; + if (value < adj->lower) + value = adj->lower; + else if (value > (adj->upper - adj->page_size)) + value = adj->upper - adj->page_size; ++ if (ABS (html->x_amount_panned) < mouse_double_click_threshold) ++ html->x_amount_panned += (gint)(value - adj->value) ; + gtk_adjustment_set_value(adj, value); ++ + } + + return TRUE; + } + +@@ -1830,18 +1836,20 @@ + GdkEventButton *event) + { + GtkHTML *html; + GtkWidget *orig_widget = widget; + HTMLEngine *engine; +- gint value, x, y; ++ gint value, x, y, xWnd, yWnd; + + /* printf ("button_press_event\n"); */ + + x = event->x; + y = event->y; + ++ gdk_window_get_pointer (widget->window, &xWnd, &yWnd, NULL) ; + widget = shift_to_iframe_parent (widget, &x, &y); ++ shift_to_iframe_parent (orig_widget, &xWnd, &yWnd) ; + html = GTK_HTML (widget); + engine = html->engine; + + if (event->button == 1 || ((event->button == 2 || event->button == 3) + && html_engine_get_editable (engine))) +@@ -1897,12 +1905,14 @@ + case 1: + /*html->in_selection_drag = TRUE;*/ + /* (TL 18-Nov-05) First click starts panning, not selection */ + html->in_selection_drag = FALSE; + html->panning = TRUE; +- html->lastx = x; +- html->lasty = y; ++ html->x_amount_panned = ++ html->y_amount_panned = 0 ; ++ html->lastx = xWnd + gtk_adjustment_get_value (gtk_layout_get_hadjustment (GTK_LAYOUT (widget))); ++ html->lasty = yWnd + gtk_adjustment_get_value (gtk_layout_get_vadjustment (GTK_LAYOUT (widget))); + + if (html_engine_get_editable (engine)) { + HTMLObject *obj; + + obj = html_engine_get_object_at (engine, x, y, NULL, FALSE); +@@ -1970,10 +1980,12 @@ + /*html->in_selection_drag = FALSE; + gtk_html_select_word (html);*/ + /* (TL 18-Nov-05) Second click starts selection and stops panning */ + html->in_selection_drag = TRUE; + html->panning = FALSE; ++ html->x_amount_panned = ++ html->y_amount_panned = 0 ; + html->in_selection = TRUE; + /* Check for simple double click, for selecting a word */ + html->simple_dblclick = TRUE; + html->selection_x1 = x; + html->selection_y1 = y; +@@ -1982,10 +1994,12 @@ + /*html->in_selection_drag = FALSE; + gtk_html_select_line (html);*/ + /* (TL 18-Nov-05) Third click starts selection and stops panning */ + html->in_selection_drag = TRUE; + html->panning = FALSE; ++ html->x_amount_panned = ++ html->y_amount_panned = 0 ; + html->in_selection = TRUE; + } + } + + return FALSE; +@@ -2025,10 +2039,16 @@ + update_primary_selection (html); + queue_draw (html); + } + + if (event->button == 1) { ++ guint mouse_double_click_threshold = MOUSE_DBLCLK_THRESHOLD ; ++ GtkSettings *gtk_settings = gtk_widget_get_settings (widget) ; ++ ++ if (NULL != gtk_settings) ++ g_object_get (G_OBJECT (gtk_settings), "gtk-double-click-distance", &mouse_double_click_threshold, NULL) ; ++ + + if (html->in_selection_drag && html_engine_get_editable (engine)) + html_engine_jump_at (engine, x, y); + + html->in_selection_drag = FALSE; +@@ -2056,6 +2056,8 @@ + html->panning = FALSE; + + if (!html->priv->dnd_in_progress ++ && ABS (html->x_amount_panned) < mouse_double_click_threshold ++ && ABS (html->y_amount_panned) < mouse_double_click_threshold + && html->pointer_url != NULL && ! html->in_selection + && (!gtk_html_get_editable (html) || html->priv->in_url_test_mode)) { + g_signal_emit (widget, signals[LINK_CLICKED], 0, html->pointer_url); +@@ -2059,11 +2079,14 @@ + focus_object = html_engine_get_object_at (html->engine, x, y, &offset, TRUE); + if (HTML_IS_TEXT (focus_object)) + html_text_set_link_visited (HTML_TEXT (focus_object), (gint) offset, html->engine, TRUE); + } + } +- ++ ++ html->x_amount_panned = ++ html->y_amount_panned = 0 ; ++ + /* If it was a simple doubleclick select a word */ + if (html->simple_dblclick) { + html->simple_dblclick = FALSE; + gtk_html_select_word(html); + } +@@ -3399,10 +3422,12 @@ + html->selection_x1 = 0; + html->selection_y1 = 0; + + /* (TL 18-Nov-05) For panning */ + html->panning = FALSE; ++ html->x_amount_panned = ++ html->y_amount_panned = 0 ; + html->lastx = 0; + html->lasty = 0; + + html->in_selection = FALSE; + html->in_selection_drag = FALSE; +diff -r -U5 gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2008-10-16 12:07:24.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2008-10-16 12:09:41.000000000 +0200 +@@ -58,10 +58,12 @@ + + /* (TL 18-Nov-05) Panning variables */ + gboolean panning; + gint lastx; + gint lasty; ++ gint x_amount_panned ; ++ gint y_amount_panned ; + + guint in_selection : 1; + guint in_selection_drag : 1; + + guint debug : 1; diff --git a/gtkhtml/gtkhtml_190_proper_adjustment_values.diff b/gtkhtml/gtkhtml_190_proper_adjustment_values.diff new file mode 100644 index 0000000..193f06f --- /dev/null +++ b/gtkhtml/gtkhtml_190_proper_adjustment_values.diff @@ -0,0 +1,33 @@ +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.9.1.mod/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.9.1.mod/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.9.1.mod/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.9.1.mod/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-06 17:08:09.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-06 17:08:09.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-06 17:08:09.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-06 17:08:09.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-06 18:31:54.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-06 18:31:54.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-06 18:31:54.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-02-06 18:31:54.000000000 +0200 +@@ -3941,8 +3941,11 @@ + + /* printf ("calc scrollbars\n"); */ + +- height = html_engine_get_doc_height (html->engine); + width = html_engine_get_doc_width (html->engine); ++ height = html_engine_get_doc_height (html->engine); ++ ++ width = MAX (width, html->engine->width) ; ++ height = MAX (height, html->engine->height) ; + + layout = GTK_LAYOUT (html); + hadj = layout->hadjustment; +@@ -3972,7 +3975,6 @@ + if (changed_x) + *changed_x = TRUE; + } +- + } + + diff --git a/gtkhtml/gtkhtml_200_textslave_proper_disposal.diff b/gtkhtml/gtkhtml_200_textslave_proper_disposal.diff new file mode 100644 index 0000000..4307dca --- /dev/null +++ b/gtkhtml/gtkhtml_200_textslave_proper_disposal.diff @@ -0,0 +1,24 @@ +diff -ru gtkhtml-3.24.4/gtkhtml/htmltextslave.c gtkhtml-3.24.4/gtkhtml/htmltextslave.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmltextslave.c gtkhtml-3.24.4/gtkhtml/htmltextslave.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmltextslave.c gtkhtml-3.24.4/gtkhtml/htmltextslave.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmltextslave.c gtkhtml-3.24.4/gtkhtml/htmltextslave.c +--- gtkhtml-3.24.4/gtkhtml/htmltextslave.c 2007-02-16 17:48:00.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmltextslave.c 2007-02-16 17:48:00.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmltextslave.c 2007-02-16 17:48:00.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmltextslave.c 2007-02-16 17:48:00.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmltextslave.c 2007-02-16 17:58:09.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmltextslave.c 2007-02-16 17:58:09.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmltextslave.c 2007-02-16 17:58:09.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmltextslave.c 2007-02-16 17:58:09.000000000 +0200 +@@ -623,9 +623,8 @@ + - (slave->owner->text + tmp_gi1.item->offset); + tmp_gi2 = pango_glyph_item_split (&tmp_gi1, slave->owner->text, split_index); + +- glyph_item->glyph_item = *tmp_gi2; +- tmp_gi2->item = NULL; +- tmp_gi2->glyphs = NULL; ++ glyph_item->glyph_item.item = pango_item_copy (tmp_gi2->item) ; ++ glyph_item->glyph_item.glyphs = pango_glyph_string_copy (tmp_gi2->glyphs) ; + + /* free the tmp1 content and tmp2 container, but not the content */ + pango_item_free (tmp_gi1.item); diff --git a/gtkhtml/gtkhtml_210_try_a11y.diff b/gtkhtml/gtkhtml_210_try_a11y.diff new file mode 100644 index 0000000..ee54136 --- /dev/null +++ b/gtkhtml/gtkhtml_210_try_a11y.diff @@ -0,0 +1,33 @@ +diff -ru gtkhtml-3.24.4/configure.in gtkhtml-3.24.4/configure.in +--- gtkhtml-3.24.4/configure.in 2007-04-03 13:43:10.000000000 +0300 ++++ gtkhtml-3.24.4/configure.in 2007-04-03 15:20:59.000000000 +0300 +@@ -75,6 +75,29 @@ + [ --enable-a11y Enable Accessibility (requires gail) [default=no]], + [ac_cv_enable_a11y=$enableval],[ac_cv_enable_a11y=no]) + AC_MSG_CHECKING([whether to enable a11y]) ++echo '**********************************' ++if test -z "$PKG_CONFIG"; then ++ echo "Going to check for pkg-config ..." ++ AC_PATH_PROG(PKG_CONFIG, pkg-config, no) ++ echo "Checked for pkg-config: $PKG_CONFIG" ++fi ++if test "$ac_cv_enable_a11y" = yes; then ++ echo "ac_cv_enable_a11y: Forced off." ++ ac_cv_enable_a11y=no ++ if test "x$PKG_CONFIG" != "xno"; then ++ echo "ac_cv_enable_a11y: Have pkg-config: $PKG_CONFIG" ++ if $PKG_CONFIG --exists gail; then ++ echo "ac_cv_enable_a11y: pkg-config says gail exists" ++ ac_cv_enable_a11y=yes ; ++ echo "ac_cv_enable_a11y: Turned on." ++ else ++ echo "ac_cv_enable_a11y: $PKG_CONFIG --exists gail failed" ++ fi ++ else ++ echo "ac_cv_enable_a11y: Do not have pkg-config: $PKG_CONFIG" ++ fi ++fi ++echo '**********************************' + if test "$ac_cv_enable_a11y" = yes; then + AC_MSG_RESULT(yes) + GAIL_MODULES="gail >= 1.1.0" diff --git a/gtkhtml/gtkhtml_220_link_visited.diff b/gtkhtml/gtkhtml_220_link_visited.diff new file mode 100644 index 0000000..a321ebc --- /dev/null +++ b/gtkhtml/gtkhtml_220_link_visited.diff @@ -0,0 +1,115 @@ +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-05-09 15:04:10.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-05-09 15:04:10.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-05-09 15:04:10.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-05-09 15:04:10.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-05-09 19:27:23.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-05-09 19:27:23.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-05-09 19:27:23.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-05-09 19:27:23.000000000 +0300 +@@ -6015,6 +6015,12 @@ + html_engine_flush (html->engine); + } + ++void ++gtk_html_set_link_visited (GtkHTML *html, char *url, gboolean visited) ++ { ++ html_engine_set_link_visited (html->engine, url, visited) ; ++ } ++ + const char * + gtk_html_get_object_id_at (GtkHTML *html, int x, int y) + { +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-05-09 15:04:10.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-05-09 15:04:10.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-05-09 15:04:10.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-05-09 15:04:10.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-05-09 19:28:52.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-05-09 19:28:52.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-05-09 19:28:52.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-05-09 19:28:52.000000000 +0300 +@@ -328,6 +328,9 @@ + char * gtk_html_get_cursor_url (GtkHTML *html); + void gtk_html_set_tokenizer (GtkHTML *html, + HTMLTokenizer *tokenizer); ++void gtk_html_set_link_visited (GtkHTML *html, ++ char *url, ++ gboolean visited); + + /* DEPRECATED */ + #if 1 +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4/gtkhtml/htmlengine.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4/gtkhtml/htmlengine.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4/gtkhtml/htmlengine.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4/gtkhtml/htmlengine.c +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-05-09 15:04:10.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-05-09 15:04:10.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-05-09 15:04:10.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-05-09 15:04:10.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-05-09 19:26:17.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-05-09 19:26:17.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-05-09 19:26:17.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-05-09 19:26:17.000000000 +0300 +@@ -6090,6 +6090,36 @@ + g_hash_table_foreach (t, set_object_data, o); + } + ++typedef struct ++ { ++ char *url ; ++ gboolean visited ; ++ } SET_LINK_VISITED_PARAMS ; ++ ++static void html_engine_set_link_visited_forall_cb (HTMLObject *self, HTMLEngine *engine, SET_LINK_VISITED_PARAMS *params) ++ { ++ if (HTML_IS_TEXT (self)) ++ { ++ char *url = NULL ; ++ gint offset = 0 ; ++ ++ do ++ if (NULL != (url = html_object_get_complete_url (HTML_OBJECT (self), offset))) ++ { ++ if (!strcmp (params->url, url)) ++ html_text_set_link_visited (HTML_TEXT (self), offset, engine, params->visited) ; ++ g_free (url) ; ++ } ++ while (html_text_next_link_offset (HTML_TEXT (self), &offset)) ; ++ } ++ } ++ ++void ++html_engine_set_link_visited (HTMLEngine *e, char *url, gboolean visited) ++ { ++ SET_LINK_VISITED_PARAMS params = {url, visited} ; ++ html_object_forall (e->clue, e, (HTMLObjectForallFunc)html_engine_set_link_visited_forall_cb, ¶ms) ; ++ } + + HTMLEngine * + html_engine_get_top_html_engine (HTMLEngine *e) +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine.h gtkhtml-3.24.4/gtkhtml/htmlengine.h +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine.h gtkhtml-3.24.4/gtkhtml/htmlengine.h +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine.h gtkhtml-3.24.4/gtkhtml/htmlengine.h +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine.h gtkhtml-3.24.4/gtkhtml/htmlengine.h +--- gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-01-03 17:19:57.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-05-09 19:26:56.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-05-09 19:26:56.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-05-09 19:26:56.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-05-09 19:26:56.000000000 +0300 +@@ -493,5 +493,6 @@ + void html_engine_opened_streams_set (HTMLEngine *e, int value); + + void html_engine_refresh_fonts (HTMLEngine *e); ++void html_engine_set_link_visited (HTMLEngine *e, char *url, gboolean visited) ; + + #endif /* _HTMLENGINE_H_ */ diff --git a/gtkhtml/gtkhtml_230_remove_libart.diff b/gtkhtml/gtkhtml_230_remove_libart.diff new file mode 100644 index 0000000..d9f5a8d --- /dev/null +++ b/gtkhtml/gtkhtml_230_remove_libart.diff @@ -0,0 +1,60 @@ +diff -ru gtkhtml-3.24.4/gtkhtml/htmlobject.h gtkhtml-3.24.4/gtkhtml/htmlobject.h +diff -ru gtkhtml-3.24.4/gtkhtml/htmlobject.h gtkhtml-3.24.4/gtkhtml/htmlobject.h +diff -ru gtkhtml-3.24.4/gtkhtml/htmlobject.h gtkhtml-3.24.4/gtkhtml/htmlobject.h +diff -ru gtkhtml-3.24.4/gtkhtml/htmlobject.h gtkhtml-3.24.4/gtkhtml/htmlobject.h +--- gtkhtml-3.24.4/gtkhtml/htmlobject.h 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlobject.h 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlobject.h 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlobject.h 2007-01-03 17:19:57.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlobject.h 2007-05-30 23:03:10.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlobject.h 2007-05-30 23:03:10.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlobject.h 2007-05-30 23:03:10.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlobject.h 2007-05-30 23:03:10.000000000 +0300 +@@ -24,7 +24,6 @@ + #ifndef _HTMLOBJECT_H_ + #define _HTMLOBJECT_H_ + +-#include + #include + #include "htmltypes.h" + #include "htmlenums.h" +diff -ru gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c +--- gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c 2007-01-03 17:19:57.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c 2007-01-03 17:19:57.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c 2007-05-30 23:02:58.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c 2007-05-30 23:02:58.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c 2007-05-30 23:02:58.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlplainpainter.c 2007-05-30 23:02:58.000000000 +0300 +@@ -22,7 +22,6 @@ + #include + #include + #include +-#include + + #include "htmlentity.h" + #include "htmlgdkpainter.h" +diff -ru gtkhtml-3.24.4/gtkhtml/htmltablecell.c gtkhtml-3.24.4/gtkhtml/htmltablecell.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmltablecell.c gtkhtml-3.24.4/gtkhtml/htmltablecell.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmltablecell.c gtkhtml-3.24.4/gtkhtml/htmltablecell.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmltablecell.c gtkhtml-3.24.4/gtkhtml/htmltablecell.c +--- gtkhtml-3.24.4/gtkhtml/htmltablecell.c 2007-02-09 21:54:58.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmltablecell.c 2007-02-09 21:54:58.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmltablecell.c 2007-02-09 21:54:58.000000000 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmltablecell.c 2007-02-09 21:54:58.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmltablecell.c 2007-05-30 23:03:26.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmltablecell.c 2007-05-30 23:03:26.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmltablecell.c 2007-05-30 23:03:26.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmltablecell.c 2007-05-30 23:03:26.000000000 +0300 +@@ -23,7 +23,6 @@ + + #include + #include +-#include + #include + #include "htmlcluev.h" + #include "htmlengine-edit.h" diff --git a/gtkhtml/gtkhtml_240_last_search_selected_area.diff b/gtkhtml/gtkhtml_240_last_search_selected_area.diff new file mode 100644 index 0000000..30fb1c3 --- /dev/null +++ b/gtkhtml/gtkhtml_240_last_search_selected_area.diff @@ -0,0 +1,186 @@ +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-06-25 11:09:14.970379010 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-06-25 11:09:14.970379010 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-06-25 11:09:14.970379010 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-06-25 11:09:14.970379010 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-06-25 11:05:48.745596648 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-06-25 11:05:48.745596648 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-06-25 11:05:48.745596648 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2007-06-25 11:05:48.745596648 +0200 +@@ -6099,10 +6099,16 @@ + g_return_if_fail (GTK_IS_HTML (html)); + + gtk_html_set_magnification (html, 1.0); + } + + void ++gtk_html_get_selection_area (GtkHTML *html, gint *x, gint *y, gint *w, gint *h) ++{ ++ html_engine_get_selection_area (html->engine, x, y, w, h); ++} ++ ++void + gtk_html_set_allow_frameset (GtkHTML *html, gboolean allow) + { + g_return_if_fail (GTK_IS_HTML (html)); + g_return_if_fail (HTML_IS_ENGINE (html->engine)); +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-06-25 11:09:14.977378731 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-06-25 11:09:14.977378731 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-06-25 11:09:14.977378731 +0200 +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-06-25 11:09:14.977378731 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-06-25 11:05:48.815593858 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-06-25 11:05:48.815593858 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-06-25 11:05:48.815593858 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2007-06-25 11:05:48.815593858 +0200 +@@ -344,9 +344,14 @@ + GtkHTMLSaveReceiverFn receiver, + gpointer data); + GtkHTMLStream *gtk_html_begin_content (GtkHTML *html, + gchar *content_type); + void gtk_html_drag_dest_set (GtkHTML *html); ++void gtk_html_get_selection_area (GtkHTML *html, ++ gint *x, ++ gint *y, ++ gint *w, ++ gint *h); + + #endif + + #endif /* _GTKHTML_H_ */ +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine-search.c gtkhtml-3.24.4/gtkhtml/htmlengine-search.c +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine-search.c gtkhtml-3.24.4/gtkhtml/htmlengine-search.c +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine-search.c gtkhtml-3.24.4/gtkhtml/htmlengine-search.c +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine-search.c gtkhtml-3.24.4/gtkhtml/htmlengine-search.c +--- gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-06-25 11:09:14.444399968 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-06-25 11:09:14.444399968 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-06-25 11:09:14.444399968 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-06-25 11:09:14.444399968 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-06-25 11:05:48.056624103 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-06-25 11:05:48.056624103 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-06-25 11:05:48.056624103 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-06-25 11:05:48.056624103 +0200 +@@ -93,10 +93,15 @@ + ex += last->width; + ey += last->descent; + w = ex - x; + h = ey - y; + ++ e->search_area_x = x; ++ e->search_area_y = y; ++ e->search_area_w = w; ++ e->search_area_h = h; ++ + /* now calculate gtkhtml adustments */ + if (x <= ep->x_offset) + nx = x; + else if (x + w > ep->x_offset + ep->width) + nx = x + w - ep->width; +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine-search.h gtkhtml-3.24.4/gtkhtml/htmlengine-search.h +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine-search.h gtkhtml-3.24.4/gtkhtml/htmlengine-search.h +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine-search.h gtkhtml-3.24.4/gtkhtml/htmlengine-search.h +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine-search.h gtkhtml-3.24.4/gtkhtml/htmlengine-search.h +--- gtkhtml-3.24.4/gtkhtml/htmlengine-search.h 2007-01-03 16:19:57.000000000 +0100 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-search.h 2007-01-03 16:19:57.000000000 +0100 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-search.h 2007-01-03 16:19:57.000000000 +0100 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-search.h 2007-01-03 16:19:57.000000000 +0100 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-search.h 2007-06-25 11:05:48.106622111 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-search.h 2007-06-25 11:05:48.106622111 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-search.h 2007-06-25 11:05:48.106622111 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-search.h 2007-06-25 11:05:48.106622111 +0200 +@@ -30,5 +30,9 @@ + gboolean forward); + gboolean html_engine_search_next (HTMLEngine *e); + gboolean html_engine_search_incremental (HTMLEngine *e, + const gchar *text, + gboolean forward); ++ ++void html_engine_search_get_selected_area (HTMLEngine *e, ++ gint *x, gint *y, ++ gint *w, gint *h); +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4/gtkhtml/htmlengine.c +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4/gtkhtml/htmlengine.c +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4/gtkhtml/htmlengine.c +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4/gtkhtml/htmlengine.c +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-06-25 11:09:14.988378293 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-06-25 11:09:14.988378293 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-06-25 11:09:14.988378293 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-06-25 11:09:14.988378293 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-06-25 11:05:47.689638728 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-06-25 11:05:47.689638728 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-06-25 11:05:47.689638728 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2007-06-25 11:05:47.689638728 +0200 +@@ -6584,5 +6584,28 @@ + html_object_change_set_down (e->clue, HTML_CHANGE_ALL); + html_engine_calc_size (e, FALSE); + html_engine_schedule_update (e); + } + } ++ ++static void ++add_iframe_off (HTMLEngine *e, gint *x, gint *y) ++{ ++ g_assert (e); ++ g_assert (e->widget); ++ ++ if (e->widget->iframe_parent) { ++ *x += e->widget->iframe_parent->allocation.x; ++ *y += e->widget->iframe_parent->allocation.y; ++ } ++} ++ ++void ++html_engine_get_selection_area (HTMLEngine *e, ++ gint *x, gint *y, ++ gint *w, gint *h) ++{ ++ *x = e->search_area_x; ++ *y = e->search_area_y; ++ *w = e->search_area_w; ++ *h = e->search_area_h; ++} +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine.h gtkhtml-3.24.4/gtkhtml/htmlengine.h +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine.h gtkhtml-3.24.4/gtkhtml/htmlengine.h +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine.h gtkhtml-3.24.4/gtkhtml/htmlengine.h +diff -r -U 5 gtkhtml-3.24.4/gtkhtml/htmlengine.h gtkhtml-3.24.4/gtkhtml/htmlengine.h +--- gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-06-25 11:09:14.993378094 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-06-25 11:09:14.993378094 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-06-25 11:09:14.993378094 +0200 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-06-25 11:09:14.993378094 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-06-25 11:05:47.727637213 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-06-25 11:05:47.727637213 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-06-25 11:05:47.727637213 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.h 2007-06-25 11:05:47.727637213 +0200 +@@ -265,10 +265,15 @@ + + gboolean expose; + gboolean need_update; + + HTMLObject *parser_clue; /* the root of the currently parsed block */ ++ ++ gint search_area_x; ++ gint search_area_y; ++ gint search_area_w; ++ gint search_area_h; + }; + + /* must be forward referenced *sigh* */ + struct _HTMLEmbedded; + +@@ -492,7 +497,10 @@ + void html_engine_opened_streams_decrement (HTMLEngine *e); + void html_engine_opened_streams_set (HTMLEngine *e, int value); + + void html_engine_refresh_fonts (HTMLEngine *e); + void html_engine_set_link_visited (HTMLEngine *e, char *url, gboolean visited) ; ++void html_engine_get_selection_area (HTMLEngine *e, ++ gint *x, gint *y, ++ gint *w, gint *h); + + #endif /* _HTMLENGINE_H_ */ diff --git a/gtkhtml/gtkhtml_250_back_out_of_regex_search.diff b/gtkhtml/gtkhtml_250_back_out_of_regex_search.diff new file mode 100644 index 0000000..2d966d7 --- /dev/null +++ b/gtkhtml/gtkhtml_250_back_out_of_regex_search.diff @@ -0,0 +1,58 @@ +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine-search.c gtkhtml-3.24.4/gtkhtml/htmlengine-search.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine-search.c gtkhtml-3.24.4/gtkhtml/htmlengine-search.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine-search.c gtkhtml-3.24.4/gtkhtml/htmlengine-search.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine-search.c gtkhtml-3.24.4/gtkhtml/htmlengine-search.c +--- gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-07-31 14:25:35.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-07-31 14:25:35.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-07-31 14:25:35.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-07-31 14:25:35.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-07-31 14:27:45.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-07-31 14:27:45.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-07-31 14:27:45.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine-search.c 2007-07-31 14:27:45.000000000 +0300 +@@ -153,6 +153,9 @@ + } + + info = e->search_info = html_search_new (e, text, case_sensitive, forward, regular); ++ if (!info) { ++ return FALSE; ++ } + + p = e->search_info->stack ? HTML_OBJECT (e->search_info->stack->data)->parent : NULL; + o = p ? p : e->clue; +diff -ru gtkhtml-3.24.4/gtkhtml/htmlsearch.c gtkhtml-3.24.4/gtkhtml/htmlsearch.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlsearch.c gtkhtml-3.24.4/gtkhtml/htmlsearch.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlsearch.c gtkhtml-3.24.4/gtkhtml/htmlsearch.c +diff -ru gtkhtml-3.24.4/gtkhtml/htmlsearch.c gtkhtml-3.24.4/gtkhtml/htmlsearch.c +--- gtkhtml-3.24.4/gtkhtml/htmlsearch.c 2007-07-31 14:25:34.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/htmlsearch.c 2007-07-31 14:25:34.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/htmlsearch.c 2007-07-31 14:25:34.000000000 +0300 +--- gtkhtml-3.24.4/gtkhtml/htmlsearch.c 2007-07-31 14:25:34.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlsearch.c 2007-07-31 14:28:24.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlsearch.c 2007-07-31 14:28:24.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlsearch.c 2007-07-31 14:28:24.000000000 +0300 ++++ gtkhtml-3.24.4/gtkhtml/htmlsearch.c 2007-07-31 14:28:24.000000000 +0300 +@@ -100,6 +100,11 @@ + rv = re_compile_pattern (ns->text, ns->text_bytes, ns->reb); + if (rv) { + g_warning (rv); ++ ++ g_free(ns->reb); ++ ns->reb = NULL; ++ html_search_destroy(ns); ++ ns = NULL; + } + #else + int rv_int; +@@ -114,6 +119,11 @@ + } else { + g_warning ("regcomp failed, error code %d", rv_int); + } ++ ++ g_free(ns->reb); ++ ns->reb = NULL; ++ html_search_destroy(ns); ++ ns = NULL; + } + #endif + } else { diff --git a/gtkhtml/gtkhtml_260_dolt_fix.diff b/gtkhtml/gtkhtml_260_dolt_fix.diff new file mode 100644 index 0000000..7c67514 --- /dev/null +++ b/gtkhtml/gtkhtml_260_dolt_fix.diff @@ -0,0 +1,14 @@ +--- gtkhtml-3.24.4/configure.in 2008-11-05 10:21:19.000000000 +0100 ++++ gtkhtml-3.24.4/configure.in 2008-11-05 10:28:58.000000000 +0100 +@@ -51,11 +51,10 @@ + AC_ISC_POSIX + AC_PROG_CC + AC_STDC_HEADERS + AC_LIBTOOL_WIN32_DLL + AM_PROG_LIBTOOL +-DOLT + + AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) + + dnl Win32 + AC_MSG_CHECKING([for Win32]) diff --git a/gtkhtml/gtkhtml_270_content_type_fix.diff b/gtkhtml/gtkhtml_270_content_type_fix.diff new file mode 100644 index 0000000..a116d18 --- /dev/null +++ b/gtkhtml/gtkhtml_270_content_type_fix.diff @@ -0,0 +1,12 @@ +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4-proper_content_type_handling/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2009-02-20 14:00:56.000000000 +0100 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2009-02-20 14:02:22.000000000 +0100 +@@ -3680,7 +3680,7 @@ + { + g_return_val_if_fail (! gtk_html_get_editable (html), NULL); + +- return gtk_html_begin_full (html, NULL, NULL, 0); ++ return gtk_html_begin_full (html, NULL, content_type, 0); + } + + /** diff --git a/gtkhtml/gtkhtml_280_pop_element_by_type_crash_fix.diff b/gtkhtml/gtkhtml_280_pop_element_by_type_crash_fix.diff new file mode 100644 index 0000000..4d345d5 --- /dev/null +++ b/gtkhtml/gtkhtml_280_pop_element_by_type_crash_fix.diff @@ -0,0 +1,37 @@ +2009-03-20 08:54 diff -lru gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4-fix_crash_dkedves/gtkhtml/htmlengine.c Page 1 +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2009-03-20 08:54:09.000000000 +0100 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2009-03-19 21:38:46.000000000 +0100 +@@ -1137,17 +1137,22 @@ + + while (l) { + gint cd; +- elem = l->data; +- +- cd = elem->style->display; +- if (cd == display) +- break; + +- if (cd > maxLevel) { +- if (display != DISPLAY_INLINE +- || cd > DISPLAY_BLOCK) +- return; +- } ++ /* We skip invalid items to avoid crash... ++ * Yeah, its only a workaround... FIXME */ ++ if (l->data && ((HTMLElement*)l->data)->style) { ++ elem = l->data; ++ ++ cd = elem->style->display; ++ if (cd == display) ++ break; ++ ++ if (cd > maxLevel) { ++ if (display != DISPLAY_INLINE ++ || cd > DISPLAY_BLOCK) ++ return; ++ } ++ } + + l = l->next; + } + diff --git a/gtkhtml/gtkhtml_290_set_image_max_size.diff b/gtkhtml/gtkhtml_290_set_image_max_size.diff new file mode 100644 index 0000000..ece9706 --- /dev/null +++ b/gtkhtml/gtkhtml_290_set_image_max_size.diff @@ -0,0 +1,306 @@ +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2009-04-07 04:15:16.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2009-04-07 04:14:25.000000000 +0200 +@@ -6139,6 +6139,12 @@ + html_engine_get_selection_area (html->engine, x, y, w, h); + } + ++void ++gtk_html_set_max_image_size (GtkHTML *html, gint width, gint height) ++{ ++ html_engine_set_max_image_size (html->engine, width, height); ++} ++ + void + gtk_html_set_allow_frameset (GtkHTML *html, gboolean allow) + { +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.h gtkhtml-3.24.4/gtkhtml/gtkhtml.h +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2009-04-07 04:15:16.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.h 2009-04-07 04:14:25.000000000 +0200 +@@ -366,6 +366,9 @@ + gint *w, + gint *h); + ++void gtk_html_set_max_image_size (GtkHTML *html, ++ gint width, gint height); ++ + #endif + + #endif /* _GTKHTML_H_ */ +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4/gtkhtml/htmlengine.c +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2009-04-07 04:15:16.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2009-04-07 04:14:25.000000000 +0200 +@@ -4413,6 +4413,7 @@ + + engine->language = NULL; + ++ engine->image_max_size_set = FALSE; + } + + HTMLEngine * +@@ -6966,3 +6967,12 @@ + *w = e->search_area_w; + *h = e->search_area_h; + } ++ ++void html_engine_set_max_image_size (HTMLEngine *e, ++ gint width, ++ gint height) ++{ ++ e->image_max_height = height; ++ e->image_max_width = width; ++ e->image_max_size_set = TRUE; ++} +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine.h gtkhtml-3.24.4/gtkhtml/htmlengine.h +--- gtkhtml-3.24.4/gtkhtml/htmlengine.h 2009-04-07 04:15:16.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.h 2009-04-07 04:14:25.000000000 +0200 +@@ -270,6 +270,10 @@ + gint search_area_y; + gint search_area_w; + gint search_area_h; ++ ++ gboolean image_max_size_set; ++ gint image_max_width; ++ gint image_max_height; + }; + + /* must be forward referenced *sigh* */ +@@ -500,5 +504,6 @@ + void html_engine_get_selection_area (HTMLEngine *e, + gint *x, gint *y, + gint *w, gint *h); ++void html_engine_set_max_image_size (HTMLEngine *e, gint width, gint height); + + #endif /* _HTMLENGINE_H_ */ +diff -ru gtkhtml-3.24.4/gtkhtml/htmlimage.c gtkhtml-3.24.4/gtkhtml/htmlimage.c +--- gtkhtml-3.24.4/gtkhtml/htmlimage.c 2009-04-07 04:15:16.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlimage.c 2009-04-07 04:31:37.000000000 +0200 +@@ -83,8 +83,9 @@ + html_image_get_actual_width (HTMLImage *image, HTMLPainter *painter) + { + GdkPixbufAnimation *anim = image->image_ptr->animation; ++ GdkPixbuf *pixbuf = image->image_ptr->pixbuf; + gint pixel_size = painter ? html_painter_get_pixel_size (painter) : 1; +- gint width; ++ gint width, get_width, get_height; + + if (image->percent_width) { + /* The cast to `gdouble' is to avoid overflow (eg. when +@@ -93,16 +94,24 @@ + * image->specified_width) / 100 * image->magnification; + } else if (image->specified_width > 0) { + width = image->specified_width * pixel_size * image->magnification; +- } else if (image->image_ptr == NULL || anim == NULL) { ++ } else if (image->image_ptr == NULL || ++ (anim == NULL && pixbuf == NULL)) { + width = DEFAULT_SIZE * pixel_size * image->magnification; + } else { +- width = gdk_pixbuf_animation_get_width (anim) * pixel_size * image->magnification; ++ if (anim) { ++ get_width = gdk_pixbuf_animation_get_width (anim); ++ get_height = gdk_pixbuf_animation_get_height (anim); ++ } else { ++ get_width = gdk_pixbuf_get_width (pixbuf); ++ get_height = gdk_pixbuf_get_height (pixbuf); ++ } ++ width = get_width * pixel_size * image->magnification; + + if (image->specified_height > 0 || image->percent_height) { + double scale; + + scale = ((double) html_image_get_actual_height (image, painter)) +- / (gdk_pixbuf_animation_get_height (anim) * pixel_size); ++ / (get_height * pixel_size); + + width *= scale; + } +@@ -116,8 +125,9 @@ + html_image_get_actual_height (HTMLImage *image, HTMLPainter *painter) + { + GdkPixbufAnimation *anim = image->image_ptr->animation; ++ GdkPixbuf *pixbuf = image->image_ptr->pixbuf; + gint pixel_size = painter ? html_painter_get_pixel_size (painter) : 1; +- gint height; ++ gint height, get_width, get_height; + + if (image->percent_height) { + /* The cast to `gdouble' is to avoid overflow (eg. when +@@ -126,16 +136,24 @@ + * image->specified_height) / 100 * image->magnification; + } else if (image->specified_height > 0) { + height = image->specified_height * pixel_size * image->magnification; +- } else if (image->image_ptr == NULL || anim == NULL) { ++ } else if (image->image_ptr == NULL || ++ (anim == NULL && pixbuf == NULL)) { + height = DEFAULT_SIZE * pixel_size * image->magnification; + } else { +- height = gdk_pixbuf_animation_get_height (anim) * pixel_size * image->magnification; ++ if (anim) { ++ get_width = gdk_pixbuf_animation_get_width (anim); ++ get_height = gdk_pixbuf_animation_get_height (anim); ++ } else { ++ get_width = gdk_pixbuf_get_width (pixbuf); ++ get_height = gdk_pixbuf_get_height (pixbuf); ++ } ++ height = get_height * pixel_size * image->magnification; + + if (image->specified_width > 0 || image->percent_width) { + double scale; + + scale = ((double) html_image_get_actual_width (image, painter)) +- / (gdk_pixbuf_animation_get_width (anim) * pixel_size); ++ / (get_width * pixel_size); + + height *= scale; + } +@@ -454,7 +472,7 @@ + pixbuf = gdk_pixbuf_animation_get_static_image (ip->animation); + } + } else { +- pixbuf = NULL; ++ pixbuf = ip->pixbuf; + } + + pixel_size = html_painter_get_pixel_size (painter); +@@ -1121,11 +1139,16 @@ + + gdk_pixbuf_loader_close (ip->loader, NULL); + +- if (!ip->animation) { +- ip->animation = gdk_pixbuf_loader_get_animation (ip->loader); ++ if (ip->rescaled && !ip->pixbuf) { ++ ip->pixbuf = gdk_pixbuf_loader_get_pixbuf (ip->loader); + +- if (ip->animation) +- g_object_ref (ip->animation); ++ if (ip->pixbuf) ++ g_object_ref (ip->pixbuf); ++ } else if (!ip->rescaled && !ip->animation) { ++ ip->animation = gdk_pixbuf_loader_get_animation (ip->loader); ++ ++ if (ip->animation) ++ g_object_ref (ip->animation); + } + html_image_pointer_start_animation (ip); + +@@ -1231,15 +1254,49 @@ + static void + html_image_factory_area_prepared (GdkPixbufLoader *loader, HTMLImagePointer *ip) + { +- if (!ip->animation) { +- ip->animation = gdk_pixbuf_loader_get_animation (loader); ++ if (ip->rescaled && !ip->pixbuf) { ++ ip->pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); ++ g_object_ref (ip->pixbuf); ++ } else if (!ip->rescaled && !ip->animation) { ++ ip->animation = gdk_pixbuf_loader_get_animation (loader); + g_object_ref (ip->animation); + +- html_image_pointer_start_animation (ip); ++ html_image_pointer_start_animation (ip); + } + update_or_redraw (ip); + } + ++static void ++html_image_factory_size_prepared (GdkPixbufLoader *loader, ++ gint width, ++ gint height, ++ HTMLImagePointer *ip) ++{ ++ HTMLEngine* e = ip->factory->engine; ++ gint new_width = width; ++ gint new_height = height; ++ ++ if (!e->image_max_size_set) ++ return; ++ ++ if (new_width > e->image_max_width) { ++ new_height = (gint) ((double) new_height * ++ ((double) e->image_max_width / (double) new_width)); ++ new_width = e->image_max_width; ++ } ++ ++ if (new_height > e->image_max_height) { ++ new_width = (gint) ((double) new_width * ++ ((double) e->image_max_height / (double) new_height)); ++ new_height = e->image_max_height; ++ } ++ ++ if ((width != new_width) || (height != new_height)) { ++ ip->rescaled = TRUE; ++ gdk_pixbuf_loader_set_size (loader, new_width, new_height); ++ } ++} ++ + static GdkPixbuf * + html_image_factory_get_missing (HTMLImageFactory *factory) + { +@@ -1321,6 +1378,8 @@ + retval->iter = NULL; + retval->animation = NULL; + retval->interests = NULL; ++ retval->pixbuf = NULL; ++ retval->rescaled = FALSE; + retval->factory = factory; + retval->stall = FALSE; + retval->stall_timeout = g_timeout_add (STALL_INTERVAL, +@@ -1379,6 +1438,10 @@ + g_object_unref (ip->animation); + ip->animation = NULL; + } ++ if (ip->pixbuf) { ++ g_object_unref (ip->pixbuf); ++ ip->pixbuf = NULL; ++ } + if (ip->iter) { + g_object_unref (ip->iter); + ip->iter = NULL; +@@ -1441,21 +1504,28 @@ + + if (!ip) { + ip = html_image_pointer_new (url, factory); ++ g_signal_connect (ip->loader, "size_prepared", ++ G_CALLBACK (html_image_factory_size_prepared), ++ ip); + g_hash_table_insert (factory->loaded_images, ip->url, ip); + if (*url) { +- g_signal_connect (G_OBJECT (ip->loader), "area_prepared", +- G_CALLBACK (html_image_factory_area_prepared), +- ip); +- +- g_signal_connect (G_OBJECT (ip->loader), "area_updated", +- G_CALLBACK (html_image_factory_area_updated), +- ip); ++ g_signal_connect (G_OBJECT (ip->loader), "area_prepared", ++ G_CALLBACK (html_image_factory_area_prepared), ++ ip); ++ ++ g_signal_connect (G_OBJECT (ip->loader), "area_updated", ++ G_CALLBACK (html_image_factory_area_updated), ++ ip); + stream = html_image_pointer_load (ip); + } + } else { + if (reload) { + free_image_ptr_data (ip); + ip->loader = gdk_pixbuf_loader_new (); ++ g_signal_connect (ip->loader, "size_prepared", ++ G_CALLBACK (html_image_factory_size_prepared), ++ ip); ++ + stream = html_image_pointer_load (ip); + } + } +diff -ru gtkhtml-3.24.4/gtkhtml/htmlimage.h gtkhtml-3.24.4/gtkhtml/htmlimage.h +--- gtkhtml-3.24.4/gtkhtml/htmlimage.h 2009-04-07 04:15:16.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlimage.h 2009-04-07 04:23:46.000000000 +0200 +@@ -41,6 +41,8 @@ + gint stall; + guint stall_timeout; + guint animation_timeout; ++ GdkPixbuf *pixbuf; /* Only used when image_max_size_set & image rescaled */ ++ gboolean rescaled; /* to know image was rescaled */ + }; + + #define HTML_IMAGE(x) ((HTMLImage *)(x)) diff --git a/gtkhtml/gtkhtml_300_coverity_findings.diff b/gtkhtml/gtkhtml_300_coverity_findings.diff new file mode 100644 index 0000000..929cb68 --- /dev/null +++ b/gtkhtml/gtkhtml_300_coverity_findings.diff @@ -0,0 +1,78 @@ +diff -ru gtkhtml-3.24.4/gtkhtml/gtkhtml.c gtkhtml-3.24.4/gtkhtml/gtkhtml.c +--- gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2009-04-09 10:13:35.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/gtkhtml.c 2009-04-09 11:28:49.000000000 +0200 +@@ -960,14 +960,14 @@ + { + HTMLEngine *engine = GTK_HTML (widget)->engine; + ++ if (!engine) ++ return; ++ + /* we don't need to set font's in idle time so call idle callback directly to avoid + recalculating whole document + */ +- if (engine) { +- gtk_html_set_fonts (GTK_HTML (widget), engine->painter); +- html_engine_refresh_fonts (engine); +- } +- ++ gtk_html_set_fonts (GTK_HTML (widget), engine->painter); ++ html_engine_refresh_fonts (engine); + + html_colorset_set_style (engine->defaultSettings->color_set, widget); + html_colorset_set_unchanged (engine->settings->color_set, +@@ -2555,6 +2555,7 @@ + g_return_if_fail (link); + text = g_strndup (HTML_TEXT (obj)->text + link->start_index, link->end_index - link->start_index); + utf8 = g_strconcat (complete_url, "\n", text, NULL); ++ g_free (text); + } else + utf8 = g_strconcat (complete_url, "\n", complete_url, NULL); + +@@ -2562,7 +2563,6 @@ + gtk_selection_data_set (selection_data, selection_data->target, 8, + (guchar *) utf16, written_len); + g_free (utf8); +- g_free (complete_url); + GTK_HTML (widget)->priv->dnd_url = utf16; + } else { + gtk_selection_data_set (selection_data, selection_data->target, 8, +@@ -2570,6 +2570,8 @@ + /* printf ("complete URL %s\n", complete_url); */ + GTK_HTML (widget)->priv->dnd_url = complete_url; + } ++ ++ g_free (complete_url); + } + } + } +diff -ru gtkhtml-3.24.4/gtkhtml/htmlcheckbox.c gtkhtml-3.24.4/gtkhtml/htmlcheckbox.c +--- gtkhtml-3.24.4/gtkhtml/htmlcheckbox.c 2008-10-13 10:31:38.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlcheckbox.c 2009-04-09 10:50:17.000000000 +0200 +@@ -110,11 +110,12 @@ + { + HTMLEmbedded *element; + GtkWidget *check; ++ static char *on = "on"; + + element = HTML_EMBEDDED (checkbox); + + if (value == NULL) +- value = g_strdup ("on"); ++ value = on; + + html_embedded_init (element, HTML_EMBEDDED_CLASS (klass), parent, name, value); + +diff -ru gtkhtml-3.24.4/gtkhtml/htmlclueflow.c gtkhtml-3.24.4/gtkhtml/htmlclueflow.c +--- gtkhtml-3.24.4/gtkhtml/htmlclueflow.c 2008-10-13 10:31:38.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlclueflow.c 2009-04-09 11:27:05.000000000 +0200 +@@ -2308,7 +2308,8 @@ + p += (info->forward) ? 1 : -1; + } */ + +- while ((info->forward && index < text_bytes) ++ /* index should be lesser than text_bytes - 1 */ ++ while ((info->forward && index < (text_bytes - 1)) + || (!info->forward && index >= 0)) { + rv = regexec (info->reb, + (gchar *) par + index, diff --git a/gtkhtml/gtkhtml_310_some_workarounds_to_avoid_crash.diff b/gtkhtml/gtkhtml_310_some_workarounds_to_avoid_crash.diff new file mode 100644 index 0000000..659a051 --- /dev/null +++ b/gtkhtml/gtkhtml_310_some_workarounds_to_avoid_crash.diff @@ -0,0 +1,36 @@ +diff -ru gtkhtml-3.24.4/gtkhtml/htmlengine.c gtkhtml-3.24.4/gtkhtml/htmlengine.c +--- gtkhtml-3.24.4/gtkhtml/htmlengine.c 2009-04-09 13:15:13.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlengine.c 2009-04-09 13:24:57.000000000 +0200 +@@ -795,13 +795,15 @@ + static void + finish_flow (HTMLEngine *e, HTMLObject *clue) { + g_return_if_fail (HTML_IS_ENGINE (e)); +- ++ + if (e->flow && HTML_CLUE (e->flow)->tail == NULL) { +- html_clue_remove (HTML_CLUE (clue), e->flow); ++ if (clue) ++ html_clue_remove (HTML_CLUE (clue), e->flow); + html_object_destroy (e->flow); + e->flow = NULL; + } +- close_flow (e, clue); ++ if (clue) ++ close_flow (e, clue); + } + + +diff -ru gtkhtml-3.24.4/gtkhtml/htmlobject.c gtkhtml-3.24.4/gtkhtml/htmlobject.c +--- gtkhtml-3.24.4/gtkhtml/htmlobject.c 2008-10-13 10:31:38.000000000 +0200 ++++ gtkhtml-3.24.4/gtkhtml/htmlobject.c 2009-04-09 13:26:02.000000000 +0200 +@@ -57,7 +57,9 @@ + static void + destroy (HTMLObject *self) + { +-#define GTKHTML_MEM_DEBUG 1 ++ if (!self) ++ return; ++/* #define GTKHTML_MEM_DEBUG 1 */ + #if GTKHTML_MEM_DEBUG + self->parent = HTML_OBJECT (0xdeadbeef); + self->next = HTML_OBJECT (0xdeadbeef); diff --git a/gtkhtml3.14_3.24.4.bb b/gtkhtml3.14_3.24.4.bb new file mode 100644 index 0000000..561ad45 --- /dev/null +++ b/gtkhtml3.14_3.24.4.bb @@ -0,0 +1,54 @@ +# Copyright (C) 2009 Kirtika Ruchandani +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "HTML rendering library" +HOMEPAGE = "unknown" +LICENSE = "GPL" +SECTION = "x11/libs" +DEPENDS = "gtk+ gail" +PR = "r0" + +SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/gtkhtml/3.24/gtkhtml-3.24.4.tar.gz \ + file://gtkhtml/gtkhtml_050_check_string.diff;patch=p1 \ + file://gtkhtml/gtkhtml_090_dependency_removal.diff;patch=p1 \ + file://gtkhtml/gtkhtml_100_dependency_removal_cleaning.diff;patch=p1 \ + file://gtkhtml/gtkhtml_110_panning.diff;patch=p1 \ + file://gtkhtml/gtkhtml_120_text_selection.diff;patch=p1 \ + file://gtkhtml/gtkhtml_140_const_patch.diff;patch=p1 \ + file://gtkhtml/gtkhtml_150_image_magnification.diff;patch=p1 \ + file://gtkhtml/gtkhtml_160_get_motion_hints.diff;patch=p1 \ + file://gtkhtml/gtkhtml_170_text_selection_with_proper_doubleclick.diff;patch=p1 \ + file://gtkhtml/gtkhtml_180_dont_click_link_when_panning.diff;patch=p1 \ + file://gtkhtml/gtkhtml_190_proper_adjustment_values.diff;patch=p1 \ + file://gtkhtml/gtkhtml_200_textslave_proper_disposal.diff;patch=p1 \ + file://gtkhtml/gtkhtml_210_try_a11y.diff;patch=p1 \ + file://gtkhtml/gtkhtml_220_link_visited.diff;patch=p1 \ + file://gtkhtml/gtkhtml_230_remove_libart.diff;patch=p1 \ + file://gtkhtml/gtkhtml_240_last_search_selected_area.diff;patch=p1 \ + file://gtkhtml/gtkhtml_250_back_out_of_regex_search.diff;patch=p1 \ + file://gtkhtml/gtkhtml_260_dolt_fix.diff;patch=p1 \ + file://gtkhtml/gtkhtml_270_content_type_fix.diff;patch=p1 \ + file://gtkhtml/gtkhtml_280_pop_element_by_type_crash_fix.diff;patch=p1 \ + file://gtkhtml/gtkhtml_290_set_image_max_size.diff;patch=p1 \ + file://gtkhtml/gtkhtml_300_coverity_findings.diff;patch=p1 \ + file://gtkhtml/gtkhtml_310_some_workarounds_to_avoid_crash.diff;patch=p1 " + +S="${WORKDIR}/gtkhtml-${PV}" + +inherit autotools pkgconfig +EXTRA_OECONF = "--disable-gtk-doc" + +ORBIT_IDL = "${STAGING_BINDIR_NATIVE}/orbit-idl-2" + +do_configure_append(){ + find ${S} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g + find ${S} -name Makefile | xargs sed -i s:'-I${prefix}/include':'-I.':g + find ${S} -name Makefile | xargs sed -i 's|ORBIT_IDL =.*|ORBIT_IDL = ${ORBIT_IDL}|' +} + + +do_stage(){ + autotools_stage_all +} + +FILES_${PN} += "${datadir}/gtkhtml-3.14/*" diff --git a/libhildonhelp_2.0.5.bb b/libhildonhelp_2.0.5.bb new file mode 100644 index 0000000..7cb94ea --- /dev/null +++ b/libhildonhelp_2.0.5.bb @@ -0,0 +1,22 @@ +# Copyright (C) 2009 Kirtika Ruchandani +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "Hildon HelpLib for application developers" +HOMEPAGE = "http://maemo.org" +LICENSE = "GNU Lesser General Public License-version 2.1" +SECTION = "misc" +DEPENDS = "gtk-2.0 libosso libhildon1 gtkhtml libxml2" +PR = "r0" + +SRC_URI = "http://ftp.debian.org/pool/main/libh/${PN}/${PN}_${PV}.orig.tar.gz \ + file://libhildonhelp/plus-sign.patch;patch=1;pnum=0 " + +inherit autotools pkgconfig + +do_configure_prepend(){ + touch gtk-doc.make +} + +do_stage(){ + autotools_stage_all +} diff --git a/maemopad_2.4.bb b/maemopad_2.4.bb new file mode 100644 index 0000000..046414a --- /dev/null +++ b/maemopad_2.4.bb @@ -0,0 +1,18 @@ +# Copyright (C) 2009 Kirtika Ruchandani +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "Text editor application for editing plain-text documents." +HOMEPAGE = "http://maemo.org" +LICENSE = "unknown" +SECTION = "apps" +DEPENDS = "libhildon1 gtk-2.0 osso-gnome-vfs2 glib-2.0 dbus-glib libosso conbtdialogs libhildonhelp libhildonfm2 osso-af-settings" +# This is imp. Only r3 (rev. in pre-alpha repo) works. Later ones dont build +PR = "r3" + +SRC_URI = "http://repository.maemo.org/pool/maemo5.0prealpha1/free/m/${PN}/${PN}_${PV}-3.tar.gz" + +inherit autotools pkgconfig + +FILES_${PN} += "${datadir}/icons/* \ + ${datadir}/hildon-help/* \ + ${datadir}/dbus-1/* " -- 1.7.9.5