diff options
Diffstat (limited to 'recipes/gtk-webcore')
52 files changed, 1990 insertions, 0 deletions
diff --git a/recipes/gtk-webcore/files/KWIQ-mimetype-segfault.patch b/recipes/gtk-webcore/files/KWIQ-mimetype-segfault.patch new file mode 100644 index 0000000000..feee33c8fe --- /dev/null +++ b/recipes/gtk-webcore/files/KWIQ-mimetype-segfault.patch @@ -0,0 +1,14 @@ +--- NRCore/kwiq/KWQLoader.cpp.orig 2006-01-10 19:20:34.000000000 +0200 ++++ NRCore/kwiq/KWQLoader.cpp 2006-01-10 19:20:50.000000000 +0200 +@@ -292,7 +292,10 @@ + QString KWQResponseMIMEType(KWIQResponse *r) + { + ASSERT(r); +- return r->mimeType(); ++ if (!r) ++ return 0; ++ else ++ return r->mimeType(); + } + + QString KWQResponseHeaderString(KWIQResponse *r) diff --git a/recipes/gtk-webcore/files/KWQKURL-urlcmp.patch b/recipes/gtk-webcore/files/KWQKURL-urlcmp.patch new file mode 100644 index 0000000000..89aec6147d --- /dev/null +++ b/recipes/gtk-webcore/files/KWQKURL-urlcmp.patch @@ -0,0 +1,9 @@ +--- NRCore/kwiq/KWQKURL.h.orig 2006-03-16 22:48:18.000000000 +0100 ++++ NRCore/kwiq/KWQKURL.h 2006-03-16 22:48:20.000000000 +0100 +@@ -130,4 +130,6 @@ + friend bool urlcmp(const QString &URLA, const QString &URLB, bool ignoreTrailingSlash, bool ignoreRef); + }; + ++bool urlcmp(const QString &URLA, const QString &URLB, bool ignoreTrailingSlash, bool ignoreRef); ++ + #endif diff --git a/recipes/gtk-webcore/files/build_silence.patch b/recipes/gtk-webcore/files/build_silence.patch new file mode 100644 index 0000000000..ac77e17aac --- /dev/null +++ b/recipes/gtk-webcore/files/build_silence.patch @@ -0,0 +1,16 @@ +Index: configure.in +=================================================================== +--- configure.in (revision 46) ++++ configure.in (working copy) +@@ -134,9 +134,9 @@ + AC_SUBST(LIBCURL_LIBS) #needed by the osb-nrcore.pc.in + + +-CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-rtti -nostdinc++" ++CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-rtti -nostdinc++ -DLOG_DISABLED" + +-CPPFLAGS="$CPPFLAGS -include \"\$(top_srcdir)/WebCorePrefix.h\" $PACKAGE_CFLAGS $X_CFLAGS $JSCORE_CFLAGS $DEFINES" ++CPPFLAGS="$CPPFLAGS -include \"\$(top_srcdir)/WebCorePrefix.h\" $PACKAGE_CFLAGS $X_CFLAGS $JSCORE_CFLAGS $DEFINES -DLOG_DISABLED" + LDFLAGS="$LDFLAGS $PACKAGE_LIBS $X_LIBS $JSCORE_LIBS \ + -nodefaultlibs -lgcc -lc" + diff --git a/recipes/gtk-webcore/files/fix-loading-error-report.patch b/recipes/gtk-webcore/files/fix-loading-error-report.patch new file mode 100644 index 0000000000..09e6f4f03a --- /dev/null +++ b/recipes/gtk-webcore/files/fix-loading-error-report.patch @@ -0,0 +1,44 @@ +--- NRCit.orig/src/gtk/webi.cc.orig 2006-04-04 01:53:14.000000000 +0300 ++++ NRCit/src/gtk/webi.cc 2006-04-04 01:44:20.000000000 +0300 +@@ -839,12 +839,15 @@ + status->status = WEBI_LOADING_COMPLETE; + status->statusCode = statusCode; + ++ g_signal_emit_by_name(webi, "status", status); + // assert(status->ready == status->files); + } + + void MyRoot::internalStatusStartItem(const OSB::ResourceStatus * _status) + { + if (!internal) return; ++ ++ status->status = WEBI_LOADING_START; + status->files++; + g_signal_emit_by_name(webi, "status", status); + } +@@ -852,6 +855,8 @@ + void MyRoot::internalStatusHeadersItem(const OSB::ResourceStatus * _status) + { + if (!internal) return; ++ ++ status->status = WEBI_LOADING_START; + if (_status->size()) { + status->size += _status->size(); + status->totalSize += _status->size(); +@@ -863,6 +868,8 @@ + void MyRoot::internalStatusProgressItem(const OSB::ResourceStatus * _status) + { + if (!internal) return; ++ ++ status->status = WEBI_LOADING_START; + status->totalReceived += _status->lastReceived(); + // in case Content-Length -header is not present + if (!_status->size()) { +@@ -880,6 +887,7 @@ + status->ready++; + if (_status->error()) { + // FIXME: handle errors as well.u ++ status->status = WEBI_LOADING_ERROR; + } + + g_signal_emit_by_name(webi, "status", status); diff --git a/recipes/gtk-webcore/files/gcc4-fno-threadsafe-statics-JavaScriptCore.patch b/recipes/gtk-webcore/files/gcc4-fno-threadsafe-statics-JavaScriptCore.patch new file mode 100644 index 0000000000..d48644cf5e --- /dev/null +++ b/recipes/gtk-webcore/files/gcc4-fno-threadsafe-statics-JavaScriptCore.patch @@ -0,0 +1,12 @@ +diff -bur JavaScriptCore~orig/configure.in JavaScriptCore/configure.in +--- JavaScriptCore~orig/configure.in 2006-02-12 01:51:50.000000000 -0600 ++++ JavaScriptCore/configure.in 2006-02-12 22:26:44.000000000 -0600 +@@ -63,7 +63,7 @@ + fi + changequote([,])dnl + +-CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-rtti -nostdinc++" ++CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-rtti -nostdinc++ -fno-threadsafe-statics" + LDFLAGS="$LDFLAGS $PACKAGE_LIBS" #-nodefaultlibs -lgcc -lc -lm" + + CPPFLAGS="$CPPFLAGS $PACKAGE_CFLAGS -I\$(top_srcdir)/kjs -I\$(top_srcdir)/pcre -I\$(top_srcdir)/" diff --git a/recipes/gtk-webcore/files/gcc4-fno-threadsafe-statics-NRCit.patch b/recipes/gtk-webcore/files/gcc4-fno-threadsafe-statics-NRCit.patch new file mode 100644 index 0000000000..bee942fa9a --- /dev/null +++ b/recipes/gtk-webcore/files/gcc4-fno-threadsafe-statics-NRCit.patch @@ -0,0 +1,12 @@ +diff -bur NRCit~orig/configure.in NRCit/configure.in +--- NRCit~orig/configure.in 2005-08-08 18:07:00.000000000 -0500 ++++ NRCit/configure.in 2006-02-12 21:28:53.000000000 -0600 +@@ -37,7 +37,7 @@ + esac + case " $CXXFLAGS " in + *[\ \ ]-Wall[\ \ ]*) ;; +- *) CXXFLAGS="$CXXFLAGS -Wall -Werror" ;; ++ *) CXXFLAGS="$CXXFLAGS -Wall -Werror -fno-threadsafe-statics" ;; + esac + fi + changequote([,])dnl diff --git a/recipes/gtk-webcore/files/gcc4-fno-threadsafe-statics-NRCore.patch b/recipes/gtk-webcore/files/gcc4-fno-threadsafe-statics-NRCore.patch new file mode 100644 index 0000000000..d3cb8c9b47 --- /dev/null +++ b/recipes/gtk-webcore/files/gcc4-fno-threadsafe-statics-NRCore.patch @@ -0,0 +1,12 @@ +diff -bur NRCore~orig/configure.in NRCore/configure.in +--- NRCore~orig/configure.in 2005-02-16 03:31:43.000000000 -0600 ++++ NRCore/configure.in 2006-02-12 21:03:49.000000000 -0600 +@@ -107,7 +107,7 @@ + esac + case " $CXXFLAGS " in + *[\ \ ]-Wall[\ \ ]*) ;; +- *) CXXFLAGS="$CXXFLAGS -Wall " ;; ++ *) CXXFLAGS="$CXXFLAGS -Wall -fno-threadsafe-statics " ;; + esac + fi + changequote([,])dnl diff --git a/recipes/gtk-webcore/files/gdk-colorspace.diff b/recipes/gtk-webcore/files/gdk-colorspace.diff new file mode 100644 index 0000000000..f225bc937d --- /dev/null +++ b/recipes/gtk-webcore/files/gdk-colorspace.diff @@ -0,0 +1,25 @@ +Index: src/ImageRenderer.cpp +=================================================================== +RCS file: /cvsroot/gtk-webcore/NRCit/src/ImageRenderer.cpp,v +retrieving revision 1.1.1.1 +diff -u -r1.1.1.1 ImageRenderer.cpp +--- NRCit.orig/src/ImageRenderer.cpp 16 Feb 2005 09:33:16 -0000 1.1.1.1 ++++ NRCit/src/ImageRenderer.cpp 27 May 2005 23:36:28 -0000 +@@ -297,7 +297,7 @@ + wantedSize.height, + GDK_INTERP_BILINEAR); + +- gdk_pixbuf_render_pixmap_and_mask(scaledbuf, &pixmap, &alpha, 100); ++ gdk_pixbuf_render_pixmap_and_mask_for_colormap(scaledbuf,gdk_colormap_get_system(), &pixmap, &alpha, 100); + + buf = scaledbuf; + if (iter) { +@@ -312,7 +312,7 @@ + } else { + + //correct size +- gdk_pixbuf_render_pixmap_and_mask(buf, &pixmap, &alpha, 100); ++ gdk_pixbuf_render_pixmap_and_mask_for_colormap(buf, gdk_colormap_get_system(),&pixmap, &alpha, 100); + } + + assert(gdk_pixbuf_get_has_alpha(buf) == (alpha != NULL)); diff --git a/recipes/gtk-webcore/files/libm.patch b/recipes/gtk-webcore/files/libm.patch new file mode 100644 index 0000000000..b0c0cc6af2 --- /dev/null +++ b/recipes/gtk-webcore/files/libm.patch @@ -0,0 +1,13 @@ +Index: osb-jscore-0.5.0/configure.in +=================================================================== +--- osb-jscore-0.5.0.orig/configure.in 2004-10-18 11:39:43.000000000 -0400 ++++ osb-jscore-0.5.0/configure.in 2005-02-02 17:36:36.551550088 -0500 +@@ -18,6 +18,8 @@ + AC_CHECK_HEADERS(string.h strings.h float.h) + + ++# isnan & friends generally come from libm, so link to it if its available ++AC_CHECK_LIB(m, sin) + + AC_CHECK_FUNCS(isnan,[ + AC_DEFINE(HAVE_FUNC_ISNAN,[],[Define to 1 if you have isnan function.]) diff --git a/recipes/gtk-webcore/files/no-pedantic.patch b/recipes/gtk-webcore/files/no-pedantic.patch new file mode 100644 index 0000000000..faabbbf15f --- /dev/null +++ b/recipes/gtk-webcore/files/no-pedantic.patch @@ -0,0 +1,11 @@ +--- osb-browser-0.5.0.orig/configure.in 2004-10-18 17:40:28.000000000 +0200 ++++ osb-browser-0.5.0/configure.in 2004-10-24 01:23:26.000000000 +0200 +@@ -54,7 +54,7 @@ + if test "x$GCC" = "xyes"; then + case " $CFLAGS " in + *[\ \ ]-Wall[\ \ ]*) ;; +- *) CFLAGS="$CFLAGS -Wall -Werror -ansi -pedantic" ;; ++ *) CFLAGS="$CFLAGS -Wall -Werror -ansi" ;; + esac + fi + changequote([,])dnl diff --git a/recipes/gtk-webcore/files/path_fixes.patch b/recipes/gtk-webcore/files/path_fixes.patch new file mode 100644 index 0000000000..adb27bdd85 --- /dev/null +++ b/recipes/gtk-webcore/files/path_fixes.patch @@ -0,0 +1,15 @@ +Index: NRCore/configure.in +=================================================================== +--- NRCore.orig/configure.in 2008-02-29 11:01:14.000000000 +0000 ++++ NRCore/configure.in 2008-02-29 12:45:18.000000000 +0000 +@@ -67,8 +67,8 @@ + AC_MSG_RESULT([found. Using prefix $jscore_prefix]) + JSCORE_ENABLE=yes + AC_SUBST(JSCORE_ENABLE) +- JSCORE_LIBS="-L$jscore_prefix/lib -ljscore" +- JSCORE_CFLAGS="-I$jscore_prefix/include/gtk-webcore-jscore/" ++ JSCORE_LIBS="-L$jscore_prefix/lib -lgtk_webcore_jscore" ++ JSCORE_CFLAGS="-I$jscore_prefix/include/gtk-webcore/" + jscore_pkgdatadir="$jscore_prefix/share/gtk-webcore-jscore" + else + AC_MSG_ERROR([JavaScriptCore not found. Use --with-javascriptcore-prefix=PREFIX]) diff --git a/recipes/gtk-webcore/files/setHandle_segfault-fix.patch b/recipes/gtk-webcore/files/setHandle_segfault-fix.patch new file mode 100644 index 0000000000..9ebdfeebe5 --- /dev/null +++ b/recipes/gtk-webcore/files/setHandle_segfault-fix.patch @@ -0,0 +1,16 @@ +--- NRCore/kwiq/KWQResourceLoader.cpp.orig 2006-01-21 00:13:32.000000000 +0200 ++++ NRCore/kwiq/KWQResourceLoader.cpp 2006-01-20 23:52:59.000000000 +0200 +@@ -56,8 +56,11 @@ + void KWQResourceLoader::setHandle(WebCoreResourceHandle* handle) + { + ASSERT(!_handle); +- handle->retain(); +- _handle = handle; ++ if (handle) ++ { ++ handle->retain(); ++ _handle = handle; ++ } + } + + void KWQResourceLoader::receivedResponse(KWIQResponse* response) diff --git a/recipes/gtk-webcore/files/stop-load.image-loading.patch b/recipes/gtk-webcore/files/stop-load.image-loading.patch new file mode 100644 index 0000000000..47200825c0 --- /dev/null +++ b/recipes/gtk-webcore/files/stop-load.image-loading.patch @@ -0,0 +1,44 @@ +--- NRCit/src/frameimpl.cpp.orig 2005-02-16 11:33:16.000000000 +0200 ++++ NRCit/src/frameimpl.cpp 2005-10-28 00:44:15.000000000 +0300 +@@ -152,6 +152,7 @@ + + void FrameImpl::stopLoad() + { ++ frameLoadDelegate()->onFrameLoadFinished(this, 1); + closeURL(); + } + +--- NRCit/src/ImageRenderer.cpp.orig 2005-02-16 11:33:16.000000000 +0200 ++++ NRCit/src/ImageRenderer.cpp 2005-10-28 20:43:42.000000000 +0300 +@@ -133,19 +133,19 @@ + g_object_ref(pixbuf); + } else { + // not loading +- if (ir.anim) { ++ /*if (ir.anim) { + // is an animation => get own pixbuf, owned by iterator + anim = ir.anim; + g_object_ref(anim); + assert(ir.iter); + iter = gdk_pixbuf_animation_get_iter(anim, NULL); +- } else { ++ } else {*/ + // not an animation + assert(!ir.iter); + pixbuf = ir.pixbuf; + if (pixbuf) + g_object_ref(pixbuf); +- } ++ //} + } + } + +@@ -415,7 +417,7 @@ + + void ImageRenderer::stopAnimation() + { +- //stopped = true; ++ stopped = true; + } + + void ImageRenderer::tileInRect(GdkRectangle* r, int sx, int sy, CGContextRef context) diff --git a/recipes/gtk-webcore/midori-0.0.17/webkit-update.patch b/recipes/gtk-webcore/midori-0.0.17/webkit-update.patch new file mode 100644 index 0000000000..d3d19123cf --- /dev/null +++ b/recipes/gtk-webcore/midori-0.0.17/webkit-update.patch @@ -0,0 +1,676 @@ +Update midori 0.17 to the new pkgconfig and header location. Taken from upstream git + +diff -Nurd midori-0.0.17/src/browser.c midori/src/browser.c +--- midori-0.0.17/src/browser.c 2008-01-23 02:20:22.000000000 +0100 ++++ midori/src/browser.c 2008-03-05 10:43:08.028499025 +0100 +@@ -1,5 +1,5 @@ + /* +- Copyright (C) 2007 Christian Dywan <christian@twotoasts.de> ++ Copyright (C) 2007-2008 Christian Dywan <christian@twotoasts.de> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public +@@ -290,6 +290,15 @@ + g_free(source);*/ + } + ++void on_action_fullscreen_activate(GtkAction* action, CBrowser* browser) ++{ ++ GdkWindowState state = gdk_window_get_state(browser->window->window); ++ if(state & GDK_WINDOW_STATE_FULLSCREEN) ++ gtk_window_unfullscreen(GTK_WINDOW(browser->window)); ++ else ++ gtk_window_fullscreen(GTK_WINDOW(browser->window)); ++} ++ + void on_action_back_activate(GtkAction* action, CBrowser* browser) + { + webkit_web_view_go_back(WEBKIT_WEB_VIEW(get_nth_webView(-1, browser))); +@@ -1125,13 +1134,35 @@ + update_search_engines(browser); + } + ++static void on_window_state_changed(GtkWidget* widget ++ , GdkEventWindowState* event, CBrowser* browser) ++{ ++ if(event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN) ++ { ++ if(event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN) ++ { ++ gtk_widget_hide(browser->menubar); ++ g_object_set(browser->fullscreen, "stock-id" ++ , GTK_STOCK_LEAVE_FULLSCREEN, NULL); ++ gtk_widget_show(browser->fullscreen); ++ } ++ else ++ { ++ gtk_widget_show(browser->menubar); ++ gtk_widget_hide(browser->fullscreen); ++ g_object_set(browser->fullscreen, "stock-id" ++ , GTK_STOCK_FULLSCREEN, NULL); ++ } ++ } ++} ++ + static void on_window_size_allocate(GtkWidget* widget, GtkAllocation* allocation + , CBrowser* browser) + { + if(GTK_WIDGET_REALIZED(widget)) + { +- if(!(gdk_window_get_state(widget->window) +- & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_FULLSCREEN))) ++ GdkWindowState state = gdk_window_get_state(widget->window); ++ if(!(state & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_FULLSCREEN))) + { + config->winWidth = allocation->width; + config->winHeight = allocation->height; +@@ -1180,6 +1211,8 @@ + + // Setup the window metrics + browser->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); ++ g_signal_connect(browser->window, "window-state-event" ++ , G_CALLBACK(on_window_state_changed), browser); + GdkScreen* screen = gtk_window_get_screen(GTK_WINDOW(browser->window)); + const gint defaultWidth = (gint)gdk_screen_get_width(screen) / 1.7; + const gint defaultHeight = (gint)gdk_screen_get_height(screen) / 1.7; +@@ -1351,6 +1384,13 @@ + gtk_toolbar_insert(GTK_TOOLBAR(browser->navibar) + , GTK_TOOL_ITEM(browser->closedTabs), -1); + sokoke_container_show_children(GTK_CONTAINER(browser->navibar)); ++ action = gtk_action_group_get_action(browser->actiongroup, "Fullscreen"); ++ browser->fullscreen = gtk_action_create_tool_item(action); ++ gtk_widget_hide(browser->fullscreen); ++ g_signal_connect(browser->fullscreen, "clicked" ++ , G_CALLBACK(on_action_fullscreen_activate), browser); ++ gtk_toolbar_insert(GTK_TOOLBAR(browser->navibar) ++ , GTK_TOOL_ITEM(browser->fullscreen), -1); + action_set_active("ToolbarNavigation", config->toolbarNavigation, browser); + + // Bookmarkbar +@@ -1605,6 +1645,7 @@ + browser->location = oldBrowser->location; + browser->webSearch = oldBrowser->webSearch; + browser->closedTabs = oldBrowser->closedTabs; ++ browser->fullscreen = oldBrowser->fullscreen; + browser->bookmarkbar = oldBrowser->bookmarkbar; + browser->panels = oldBrowser->panels; + browser->panels_notebook = oldBrowser->panels_notebook; +@@ -1691,7 +1732,9 @@ + + // Connect signals + #define DOC_CONNECT(__sig, __func) g_signal_connect \ +- (G_OBJECT(browser->webView), __sig, G_CALLBACK(__func), browser); ++ (browser->webView, __sig, G_CALLBACK(__func), browser); ++ #define DOC_CONNECTA(__sig, __func) g_signal_connect_after \ ++ (browser->webView, __sig, G_CALLBACK(__func), browser); + DOC_CONNECT ("navigation-requested" , on_webView_navigation_requested) + DOC_CONNECT ("title-changed" , on_webView_title_changed) + DOC_CONNECT ("icon-loaded" , on_webView_icon_changed) +@@ -1704,11 +1747,13 @@ + DOC_CONNECT ("console-message" , on_webView_console_message) + + DOC_CONNECT ("button-press-event" , on_webView_button_press) ++ DOC_CONNECTA ("button-press-event" , on_webView_button_press_after) + DOC_CONNECT ("popup-menu" , on_webView_popup); + DOC_CONNECT ("scroll-event" , on_webView_scroll); + DOC_CONNECT ("leave-notify-event" , on_webView_leave) + DOC_CONNECT ("destroy" , on_webView_destroy) + #undef DOC_CONNECT ++ #undef DOC_CONNECTA + + webkit_web_view_set_settings(WEBKIT_WEB_VIEW(browser->webView), webSettings); + +diff -Nurd midori-0.0.17/src/browser.h midori/src/browser.h +--- midori-0.0.17/src/browser.h 2008-01-20 19:16:17.000000000 +0100 ++++ midori/src/browser.h 2008-03-05 10:43:08.028499025 +0100 +@@ -39,6 +39,7 @@ + GtkWidget* location; + GtkWidget* webSearch; + GtkWidget* closedTabs; ++ GtkWidget* fullscreen; + GtkWidget* bookmarkbar; + // panels + GtkWidget* panels; +@@ -161,6 +162,9 @@ + on_action_source_view_activate(GtkAction*, CBrowser*); + + void ++on_action_fullscreen_activate(GtkAction*, CBrowser*); ++ ++void + on_action_back_activate(GtkAction*, CBrowser*); + + void +@@ -364,6 +368,9 @@ + { "Properties", GTK_STOCK_PROPERTIES + , NULL, "" + , "hm?", NULL/*G_CALLBACK(on_action_properties_activate)*/ }, ++ { "Fullscreen", GTK_STOCK_FULLSCREEN ++ , NULL, "F11" ++ , "Toggle fullscreen view", G_CALLBACK(on_action_fullscreen_activate) }, + + { "Go", NULL, "_Go" }, + { "Back", GTK_STOCK_GO_BACK +diff -Nurd midori-0.0.17/src/conf.c midori/src/conf.c +--- midori-0.0.17/src/conf.c 2008-01-23 05:12:24.000000000 +0100 ++++ midori/src/conf.c 2008-03-05 10:43:08.028499025 +0100 +@@ -1,5 +1,5 @@ + /* +- Copyright (C) 2007 Christian Dywan <christian@twotoasts.de> ++ Copyright (C) 2007-2008 Christian Dywan <christian@twotoasts.de> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public +@@ -64,6 +64,7 @@ + GET_INT(config->newPages, "NewPages", CONFIG_NEWPAGES_TAB_NEW); + GET_INT(config->openTabsInTheBackground, "OpenTabsInTheBackground", FALSE); + GET_INT(config->openPopupsInTabs, "OpenPopupsInTabs", FALSE); ++ GET_INT(config->middleClickGoto, "MiddleClickGoto", FALSE); + #undef GET_INT + #undef GET_STR + +@@ -73,6 +74,10 @@ + #define GET_STR(var, key, default) \ + var = sokoke_key_file_get_string_default( \ + keyFile, "content", key, default, NULL) ++ GET_STR(config->defaultFontFamily, "DefaultFontFamily", "Sans"); ++ GET_INT(config->defaultFontSize, "DefaultFontSize", 10); ++ GET_INT(config->minimumFontSize, "MinimumFontSize", 5); ++ GET_STR(config->defaultEncoding, "DefaultEncoding", "UTF-8"); + GET_INT(config->autoLoadImages, "AutoLoadImages", TRUE); + GET_INT(config->autoShrinkImages, "AutoShrinkImages", TRUE); + GET_INT(config->printBackgrounds, "PrintBackgrounds", FALSE); +@@ -143,7 +148,12 @@ + g_key_file_set_integer(keyFile, "browser", "NewPages", config->newPages); + g_key_file_set_integer(keyFile, "browser", "OpenTabsInTheBackground", config->openTabsInTheBackground); + g_key_file_set_integer(keyFile, "browser", "OpenPopupsInTabs", config->openPopupsInTabs); ++ g_key_file_set_integer(keyFile, "browser", "MiddleClickGoto", config->middleClickGoto); + ++ g_key_file_set_string (keyFile, "content", "DefaultFontFamily", config->defaultFontFamily); ++ g_key_file_set_integer(keyFile, "content", "DefaultFontSize", config->defaultFontSize); ++ g_key_file_set_integer(keyFile, "content", "MinimumFontSize", config->minimumFontSize); ++ g_key_file_set_string (keyFile, "content", "DefaultEncoding", config->defaultEncoding); + g_key_file_set_integer(keyFile, "content", "AutoLoadImages", config->autoLoadImages); + g_key_file_set_integer(keyFile, "content", "AutoShrinkImages", config->autoShrinkImages); + g_key_file_set_integer(keyFile, "content", "PrintBackgrounds", config->printBackgrounds); +diff -Nurd midori-0.0.17/src/conf.h midori/src/conf.h +--- midori-0.0.17/src/conf.h 2008-01-23 05:11:13.000000000 +0100 ++++ midori/src/conf.h 2008-03-05 10:43:08.028499025 +0100 +@@ -1,5 +1,5 @@ + /* +- Copyright (C) 2007 Christian Dywan <christian@twotoasts.de> ++ Copyright (C) 2007-2008 Christian Dywan <christian@twotoasts.de> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public +@@ -36,8 +36,12 @@ + guint newPages; // where to open new pages + gboolean openTabsInTheBackground; + gboolean openPopupsInTabs; ++ gboolean middleClickGoto; + +- ++ gchar* defaultFontFamily; ++ guint defaultFontSize; ++ guint minimumFontSize; ++ gchar* defaultEncoding; + gboolean autoLoadImages; + gboolean autoShrinkImages; + gboolean printBackgrounds; +diff -Nurd midori-0.0.17/src/global.h midori/src/global.h +--- midori-0.0.17/src/global.h 2008-01-23 03:13:40.000000000 +0100 ++++ midori/src/global.h 2008-03-05 10:43:08.028499025 +0100 +@@ -16,7 +16,7 @@ + #include "../katze/katze.h" + + #include <gtk/gtk.h> +-#include <webkit.h> ++#include <webkit/webkit.h> + + // -- globals + +@@ -81,5 +81,9 @@ + #if !GTK_CHECK_VERSION(2, 10, 0) + #define GTK_STOCK_SELECT_ALL "gtk-select-all" + #endif ++#if !GTK_CHECK_VERSION(2, 8, 0) ++#define GTK_STOCK_FULLSCREEN "gtk-fullscreen" ++#define GTK_STOCK_LEAVE_FULLSCREEN "gtk-leave-fullscreen" ++#endif + + #endif /* !__GLOBAL_H__ */ +diff -Nurd midori-0.0.17/src/helpers.c midori/src/helpers.c +--- midori-0.0.17/src/helpers.c 2008-01-20 17:46:16.000000000 +0100 ++++ midori/src/helpers.c 2008-03-05 10:43:08.028499025 +0100 +@@ -16,7 +16,7 @@ + #include "../katze/katze.h" + + #include <string.h> +-#include <webkit.h> ++#include <webkit/webkit.h> + + GtkIconTheme* get_icon_theme(GtkWidget* widget) + { +@@ -417,7 +417,7 @@ + if(!strstr(uri, "://")) + { + // Do we have a domain, ip address or localhost? +- if(strstr(uri, ".") != NULL || !strcmp(uri, "localhost")) ++ if(strchr(uri, '.') != NULL || !strcmp(uri, "localhost")) + return g_strconcat("http://", uri, NULL); + // We don't want to search? So return early. + if(!search) +diff -Nurd midori-0.0.17/src/main.c midori/src/main.c +--- midori-0.0.17/src/main.c 2008-01-23 05:13:21.000000000 +0100 ++++ midori/src/main.c 2008-03-05 10:43:08.031832796 +0100 +@@ -1,5 +1,5 @@ + /* +- Copyright (C) 2007 Christian Dywan <christian@twotoasts.de> ++ Copyright (C) 2007-2008 Christian Dywan <christian@twotoasts.de> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public +@@ -21,6 +21,7 @@ + + #include <string.h> + #include <gtk/gtk.h> ++#include <webkit/webkit.h> + + #include "config.h" + +@@ -58,6 +59,10 @@ + #if !GTK_CHECK_VERSION(2, 10, 0) + { GTK_STOCK_SELECT_ALL, "Select _All", 0, 0, (gchar*)"gtk20" }, + #endif ++ #if !GTK_CHECK_VERSION(2, 8, 0) ++ { GTK_STOCK_FULLSCREEN, "_Fullscreen", 0, 0, (gchar*)"gtk20" }, ++ { GTK_STOCK_FULLSCREEN, "_Leave Fullscreen", 0, 0, (gchar*)"gtk20" }, ++ #endif + }; + GtkIconFactory* factory = gtk_icon_factory_new(); + guint i; +@@ -244,8 +249,11 @@ + stock_items_init(); + browsers = NULL; + +- webSettings = webkit_web_settings_new(); +- g_object_set(webSettings ++ webSettings = g_object_new(WEBKIT_TYPE_WEB_SETTINGS ++ , "default-font-family" , config->defaultFontFamily ++ , "default-font-size" , config->defaultFontSize ++ , "minimum-font-size" , config->minimumFontSize ++ , "default-encoding" , config->defaultEncoding + , "auto-load-images" , config->autoLoadImages + , "auto-shrink-images" , config->autoShrinkImages + , "print-backgrounds" , config->printBackgrounds +diff -Nurd midori-0.0.17/src/prefs.c midori/src/prefs.c +--- midori-0.0.17/src/prefs.c 2008-01-23 05:10:45.000000000 +0100 ++++ midori/src/prefs.c 2008-03-05 10:43:08.031832796 +0100 +@@ -1,5 +1,5 @@ + /* +- Copyright (C) 2007 Christian Dywan <christian@twotoasts.de> ++ Copyright (C) 2007-2008 Christian Dywan <christian@twotoasts.de> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public +@@ -15,7 +15,8 @@ + #include "global.h" + #include "sokoke.h" + +-#include "string.h" ++#include <stdlib.h> ++#include <string.h> + + static gboolean on_prefs_homepage_focus_out(GtkWidget* widget + , GdkEventFocus event, CPrefs* prefs) +@@ -29,11 +30,65 @@ + config->startup = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); + } + ++static void on_prefs_defaultFont_changed(GtkWidget* widget, CPrefs* prefs) ++{ ++ const gchar* font = gtk_font_button_get_font_name(GTK_FONT_BUTTON(widget)); ++ gchar** components = g_strsplit(font, " ", 0); ++ guint i, n = g_strv_length(components) - 1; ++ GString* fontName = g_string_new(NULL); ++ for(i = 0; i < n; i++) ++ g_string_append_printf(fontName, "%s ", components[i]); ++ katze_assign(config->defaultFontFamily, g_string_free(fontName, FALSE)); ++ config->defaultFontSize = atoi(components[n]); ++ g_strfreev(components); ++ g_object_set(webSettings, "default-font-family", config->defaultFontFamily ++ , "default-font-size", config->defaultFontSize, NULL); ++} ++ ++static void on_prefs_minimumFontSize_changed(GtkWidget* widget, CPrefs* prefs) ++{ ++ config->minimumFontSize = gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget)); ++ g_object_set(webSettings, "minimum-font-size", config->minimumFontSize, NULL); ++} ++ ++static void on_prefs_defaultEncoding_changed(GtkWidget* widget, CPrefs* prefs) ++{ ++ gchar* encoding; ++ switch(gtk_combo_box_get_active(GTK_COMBO_BOX(widget))) ++ { ++ case 0: ++ encoding = g_strdup("BIG5"); ++ break; ++ case 1: ++ encoding = g_strdup("SHIFT_JIS"); ++ break; ++ case 2: ++ encoding = g_strdup("KOI8-R"); ++ break; ++ case 3: ++ encoding = g_strdup("UTF-8"); ++ break; ++ case 4: ++ encoding = g_strdup("ISO-8859-1"); ++ break; ++ default: ++ encoding = g_strdup("UTF-8"); ++ g_warning("Invalid default encoding"); ++ } ++ katze_assign(config->defaultEncoding, encoding); ++ g_object_set(webSettings, "default-encoding", config->defaultEncoding, NULL); ++} ++ + static void on_prefs_newpages_changed(GtkWidget* widget, CPrefs* prefs) + { + config->newPages = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); + } + ++void on_prefs_middleClickGoto_toggled(GtkWidget* widget, CPrefs* prefs) ++{ ++ config->middleClickGoto = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); ++} ++ + void on_prefs_openTabsInTheBackground_toggled(GtkWidget* widget, CPrefs* prefs) + { + config->openTabsInTheBackground = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); +@@ -302,7 +357,7 @@ + #define WIDGET_ADD(__widget, __left, __right, __top, __bottom)\ + gtk_table_attach(GTK_TABLE(table), __widget\ + , __left, __right, __top, __bottom\ +- , 0, GTK_FILL, 8, 2) ++ , GTK_FILL, GTK_FILL, 8, 2) + #define FILLED_ADD(__widget, __left, __right, __top, __bottom)\ + gtk_table_attach(GTK_TABLE(table), __widget\ + , __left, __right, __top, __bottom\ +@@ -371,30 +426,42 @@ + PAGE_NEW("Appearance"); + FRAME_NEW("Font settings"); + TABLE_NEW(5, 2); +- INDENTED_ADD(gtk_label_new("Standard font"), 0, 1, 0, 1); +- button = gtk_font_button_new_with_font("Sans 10"/*config->sFontStandard*/); +- gtk_widget_set_sensitive(button, FALSE); //... ++ INDENTED_ADD(gtk_label_new_with_mnemonic("Default _font"), 0, 1, 0, 1); ++ gchar* defaultFont = g_strdup_printf("%s %d" ++ , config->defaultFontFamily, config->defaultFontSize); ++ button = gtk_font_button_new_with_font(defaultFont); ++ g_free(defaultFont); ++ g_signal_connect(button, "font-set", G_CALLBACK(on_prefs_defaultFont_changed), prefs); + FILLED_ADD(button, 1, 2, 0, 1); +- INDENTED_ADD(gtk_label_new("Minimum font size"), 0, 1, 1, 2); ++ INDENTED_ADD(gtk_label_new_with_mnemonic("_Minimum font size"), 0, 1, 1, 2); + hbox = gtk_hbox_new(FALSE, 4); +- spinbutton = gtk_spin_button_new_with_range(5, 12, 1); +- gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbutton), 5/*config->iFontSizeMin*/); +- gtk_widget_set_sensitive(spinbutton, FALSE); //... ++ spinbutton = gtk_spin_button_new_with_range(1, G_MAXINT, 1); ++ gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbutton), config->minimumFontSize); ++ g_signal_connect(spinbutton, "value-changed" ++ , G_CALLBACK(on_prefs_minimumFontSize_changed), prefs); + gtk_box_pack_start(GTK_BOX(hbox), spinbutton, FALSE, FALSE, 0); + button = gtk_button_new_with_mnemonic("_Advanced"); + gtk_widget_set_sensitive(button, FALSE); //... + gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 4); + FILLED_ADD(hbox, 1, 2, 1, 2); +- INDENTED_ADD(gtk_label_new("Default encoding"), 0, 1, 2, 3); ++ INDENTED_ADD(gtk_label_new_with_mnemonic("Default _encoding"), 0, 1, 2, 3); + combobox = gtk_combo_box_new_text(); +- const gchar* encoding = NULL; g_get_charset(&encoding); +- // TODO: Fallback to utf-8 if the encoding is not sane (e.g. when lang=C) +- gchar* sEncodingDefault = g_strdup_printf("System (%s)", encoding); + sokoke_combo_box_add_strings(GTK_COMBO_BOX(combobox) +- , sEncodingDefault, "Chinese", "Greek", "Japanese (SHIFT_JIS)" +- , "Korean", "Russian", "Unicode (UTF-8)", "Western (ISO-8859-1)", NULL); +- gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0); //... +- gtk_widget_set_sensitive(combobox, FALSE); //... ++ , "Chinese (BIG5)", "Japanese (SHIFT_JIS)", "Russian (KOI8-R)" ++ , "Unicode (UTF-8)", "Western (ISO-8859-1)", NULL); ++ if(!strcmp(config->defaultEncoding, "BIG5")) ++ gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0); ++ else if(!strcmp(config->defaultEncoding, "SHIFT_JIS")) ++ gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 1); ++ else if(!strcmp(config->defaultEncoding, "KOI8-R")) ++ gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 2); ++ else if(!strcmp(config->defaultEncoding, "UTF-8")) ++ gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 3); ++ else if(!strcmp(config->defaultEncoding, "ISO-8859-1")) ++ gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 4); ++ // FIXME: Provide a 'Custom' item ++ g_signal_connect(combobox, "changed" ++ , G_CALLBACK(on_prefs_defaultEncoding_changed), prefs); + FILLED_ADD(combobox, 1, 2, 2, 3); + button = gtk_button_new_with_label("Advanced settings"); + gtk_widget_set_sensitive(button, FALSE); //... +@@ -427,15 +494,19 @@ + sokoke_combo_box_add_strings(GTK_COMBO_BOX(combobox) + , "New tab", "New window", "Current tab", NULL); + gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), config->newPages); +- g_signal_connect(combobox, "changed" +- , G_CALLBACK(on_prefs_newpages_changed), prefs); ++ g_signal_connect(combobox, "changed", G_CALLBACK(on_prefs_newpages_changed), prefs); + gtk_widget_set_sensitive(combobox, FALSE); //... + FILLED_ADD(combobox, 1, 2, 0, 1); ++ checkbutton = gtk_check_button_new_with_mnemonic("_Middle click goto"); ++ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->middleClickGoto); ++ g_signal_connect(checkbutton, "toggled" ++ , G_CALLBACK(on_prefs_middleClickGoto_toggled), prefs); ++ INDENTED_ADD(checkbutton, 0, 1, 1, 2); + checkbutton = gtk_check_button_new_with_mnemonic("Open tabs in the _background"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->openTabsInTheBackground); + g_signal_connect(checkbutton, "toggled" + , G_CALLBACK(on_prefs_openTabsInTheBackground_toggled), prefs); +- SPANNED_ADD(checkbutton, 0, 2, 1, 2); ++ SPANNED_ADD(checkbutton, 1, 2, 1, 2); + checkbutton = gtk_check_button_new_with_mnemonic("Open popups in _tabs"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->openPopupsInTabs); + g_signal_connect(checkbutton, "toggled" +@@ -448,7 +519,7 @@ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->autoLoadImages); + g_signal_connect(checkbutton, "toggled" + , G_CALLBACK(on_prefs_loadImagesAutomatically_toggled), prefs); +- SPANNED_ADD(checkbutton, 0, 1, 0, 1); ++ INDENTED_ADD(checkbutton, 0, 1, 0, 1); + checkbutton = gtk_check_button_new_with_mnemonic("_Shrink images to fit"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->autoShrinkImages); + g_signal_connect(checkbutton, "toggled" +@@ -458,7 +529,7 @@ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->printBackgrounds); + g_signal_connect(checkbutton, "toggled" + , G_CALLBACK(on_prefs_printBackgrounds_toggled), prefs); +- SPANNED_ADD(checkbutton, 0, 1, 1, 2); ++ INDENTED_ADD(checkbutton, 0, 1, 1, 2); + checkbutton = gtk_check_button_new_with_mnemonic("_Resizable textareas"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->resizableTextAreas); + g_signal_connect(checkbutton, "toggled" +@@ -468,7 +539,7 @@ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->enableScripts); + g_signal_connect(checkbutton, "toggled" + , G_CALLBACK(on_prefs_enableJavaScript_toggled), prefs); +- SPANNED_ADD(checkbutton, 0, 1, 2, 3); ++ INDENTED_ADD(checkbutton, 0, 1, 2, 3); + checkbutton = gtk_check_button_new_with_mnemonic("Enable _plugins"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->enablePlugins); + g_signal_connect(checkbutton, "toggled" +@@ -504,7 +575,7 @@ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->toolbarSmall); + g_signal_connect(checkbutton, "toggled" + , G_CALLBACK(on_prefs_toolbarSmall_toggled), prefs); +- SPANNED_ADD(checkbutton, 0, 1, 1, 2); ++ INDENTED_ADD(checkbutton, 0, 1, 1, 2); + checkbutton = gtk_check_button_new_with_mnemonic("Show web_search"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->toolbarWebSearch); + g_signal_connect(checkbutton, "toggled" +@@ -514,42 +585,34 @@ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->toolbarNewTab); + g_signal_connect(checkbutton, "toggled" + , G_CALLBACK(on_prefs_toolbarNewTab_toggled), prefs); +- SPANNED_ADD(checkbutton, 0, 1, 2, 3); ++ INDENTED_ADD(checkbutton, 0, 1, 2, 3); + checkbutton = gtk_check_button_new_with_mnemonic("Show _closed tabs button"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->toolbarClosedTabs); + g_signal_connect(checkbutton, "toggled" + , G_CALLBACK(on_prefs_toolbarClosedTabs_toggled), prefs); + SPANNED_ADD(checkbutton, 1, 2, 2, 3); + FRAME_NEW("Miscellaneous"); +- TABLE_NEW(3, 2); +- checkbutton = gtk_check_button_new_with_mnemonic +- ("Show close _buttons on tabs"); ++ TABLE_NEW(2, 2); ++ checkbutton = gtk_check_button_new_with_mnemonic("Close _buttons on tabs"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->tabClose); + g_signal_connect(checkbutton, "toggled" + , G_CALLBACK(on_prefs_tabClose_toggled), prefs); +- SPANNED_ADD(checkbutton, 0, 1, 0, 1); ++ INDENTED_ADD(checkbutton, 0, 1, 0, 1); + hbox = gtk_hbox_new(FALSE, 4); + gtk_box_pack_start(GTK_BOX(hbox) +- , gtk_label_new_with_mnemonic("Tab Si_ze"), FALSE, FALSE, 0); ++ , gtk_label_new_with_mnemonic("Tab Si_ze"), FALSE, FALSE, 4); + spinbutton = gtk_spin_button_new_with_range(0, 36, 1); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbutton), config->tabSize); + g_signal_connect(spinbutton, "changed" + , G_CALLBACK(on_prefs_tabSize_changed), prefs); + gtk_box_pack_start(GTK_BOX(hbox), spinbutton, FALSE, FALSE, 0); + FILLED_ADD(hbox, 1, 2, 0, 1); +- INDENTED_ADD(gtk_label_new_with_mnemonic("Tabbar _placement"), 0, 1, 1, 2); +- combobox = gtk_combo_box_new_text(); +- sokoke_combo_box_add_strings(GTK_COMBO_BOX(combobox) +- , "Left", "Top", "Right", "Bottom", NULL); +- gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 1); //... +- gtk_widget_set_sensitive(combobox, FALSE); //... +- FILLED_ADD(combobox, 1, 2, 1, 2); +- INDENTED_ADD(gtk_label_new_with_mnemonic("_Location search engine"), 0, 1, 2, 3); ++ INDENTED_ADD(gtk_label_new_with_mnemonic("_Location search engine"), 0, 1, 1, 2); + entry = gtk_entry_new(); + gtk_entry_set_text(GTK_ENTRY(entry), config->locationSearch); + g_signal_connect(entry, "focus-out-event" + , G_CALLBACK(on_prefs_locationsearch_focus_out), prefs); +- FILLED_ADD(entry, 1, 2, 2, 3); ++ FILLED_ADD(entry, 1, 2, 1, 2); + + // Page "Network" + PAGE_NEW("Network"); +diff -Nurd midori-0.0.17/src/ui.h midori/src/ui.h +--- midori-0.0.17/src/ui.h 2008-01-20 19:16:17.000000000 +0100 ++++ midori/src/ui.h 2008-03-05 10:43:08.071832738 +0100 +@@ -91,9 +91,8 @@ + "<menuitem action='ZoomOut'/>" + "<menuitem action='ZoomNormal'/>" + "<separator/>" +- "<menuitem action='BackgroundImage'/>" + "<menuitem action='SourceView'/>" +- "<menuitem action='Properties'/>" ++ "<menuitem action='Fullscreen'/>" + "</menu>" + "<menu action='Go'>" + "<menuitem action='Back'/>" +diff -Nurd midori-0.0.17/src/webSearch.h midori/src/webSearch.h +--- midori-0.0.17/src/webSearch.h 2007-12-15 04:09:47.000000000 +0100 ++++ midori/src/webSearch.h 2008-03-05 10:43:08.071832738 +0100 +@@ -16,7 +16,7 @@ + + #include <gtk/gtk.h> + #include <libsexy/sexy.h> +-#include <webkit.h> ++#include <webkit/webkit.h> + + // -- Types + +diff -Nurd midori-0.0.17/src/webView.c midori/src/webView.c +--- midori-0.0.17/src/webView.c 2008-01-13 02:47:38.000000000 +0100 ++++ midori/src/webView.c 2008-03-05 10:43:08.071832738 +0100 +@@ -1,5 +1,5 @@ + /* +- Copyright (C) 2007 Christian Dywan <christian@twotoasts.de> ++ Copyright (C) 2007-2008 Christian Dywan <christian@twotoasts.de> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public +@@ -251,6 +251,27 @@ + return FALSE; + } + ++gboolean on_webView_button_press_after(GtkWidget* webView, GdkEventButton* event ++ , CBrowser* browser) ++{ ++ if(event->button == 2 && config->middleClickGoto) ++ { ++ GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY); ++ gchar* text = gtk_clipboard_wait_for_text(clipboard); ++ gchar* uri = NULL; ++ if(text && strchr(text, '.') && !strchr(text, ' ')) ++ uri = magic_uri(text, FALSE); ++ g_free(text); ++ if(uri) ++ { ++ webkit_web_view_open(WEBKIT_WEB_VIEW(browser->webView), uri); ++ g_free(uri); ++ return TRUE; ++ } ++ } ++ return FALSE; ++} ++ + void on_webView_popup(GtkWidget* webView, CBrowser* browser) + { + webView_popup(webView, NULL, browser); +diff -Nurd midori-0.0.17/src/webView.h midori/src/webView.h +--- midori-0.0.17/src/webView.h 2008-01-04 08:46:44.000000000 +0100 ++++ midori/src/webView.h 2008-03-05 10:43:08.071832738 +0100 +@@ -16,7 +16,7 @@ + #include "browser.h" + #include "debug.h" + +-#include <webkit.h> ++#include <webkit/webkit.h> + + WebKitNavigationResponse + on_webView_navigation_requested(GtkWidget* webView, WebKitWebFrame* frame +@@ -60,6 +60,9 @@ + gboolean + on_webView_button_press(GtkWidget*, GdkEventButton*, CBrowser*); + ++gboolean ++on_webView_button_press_after(GtkWidget*, GdkEventButton*, CBrowser*); ++ + void + on_webView_popup(GtkWidget*, CBrowser*); + +--- midori-0.0.17/configure.in 2008-01-24 03:47:18.000000000 +0100 ++++ midori/configure.in 2008-03-05 10:43:08.025165254 +0100 +@@ -52,15 +52,15 @@ + GTK_VER=`pkg-config --modversion gtk+-2.0` + AC_DEFINE_UNQUOTED([GTK_VER], "$GTK_VER", [GTK+ version]) + +-# Checks for WebKitGtk +-PKG_CHECK_MODULES(WEBKIT, WebKitGtk, have_webkit=true, have_webkit=false) ++# Checks for WebKit ++PKG_CHECK_MODULES(WEBKIT, webkit-1.0, have_webkit=true, have_webkit=false) + if test "x${have_webkit}" = "xfalse" ; then +- AC_MSG_ERROR([No WebKitGtk package information found]) ++ AC_MSG_ERROR([No WebKit package information found]) + fi + AC_SUBST(WEBKIT_CFLAGS) + AC_SUBST(WEBKIT_LIBS) +-WEBKIT_VER=`pkg-config --modversion WebKitGtk` +-AC_DEFINE_UNQUOTED([WEBKIT_VER], "$WEBKITGTK_VER", [WebKitGtk version]) ++WEBKIT_VER=`pkg-config --modversion webkit-1.0` ++AC_DEFINE_UNQUOTED([WEBKIT_VER], "$WEBKIT_VER", [WebKit version]) + + # Checks for libsexy + PKG_CHECK_MODULES(LIBSEXY, libsexy, have_libsexy=true, have_libsexy=false) diff --git a/recipes/gtk-webcore/midori-0.0.18/desktop.patch b/recipes/gtk-webcore/midori-0.0.18/desktop.patch new file mode 100644 index 0000000000..bb1225432a --- /dev/null +++ b/recipes/gtk-webcore/midori-0.0.18/desktop.patch @@ -0,0 +1,7 @@ +--- midori-0.0.18/midori.desktop.in-orig 2008-03-19 14:34:52.000000000 -0700 ++++ midori-0.0.18/midori.desktop.in 2008-03-19 14:21:56.000000000 -0700 +@@ -1,4 +1,3 @@ +- + [Desktop Entry] + Version=1.0 + Encoding=UTF-8 diff --git a/recipes/gtk-webcore/midori.inc b/recipes/gtk-webcore/midori.inc new file mode 100644 index 0000000000..793590babb --- /dev/null +++ b/recipes/gtk-webcore/midori.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "Midori is a lightweight web browser." +LICENSE = "GPLv2" + +DEPENDS = "webkit-gtk libsoup-2.4 libsexy" + +inherit autotools gtk-icon-cache pkgconfig + +SRC_URI = "http://software.twotoasts.de/media/midori/midori-${PV}.tar.gz" + + diff --git a/recipes/gtk-webcore/midori_0.0.10.bb b/recipes/gtk-webcore/midori_0.0.10.bb new file mode 100644 index 0000000000..86904de5d5 --- /dev/null +++ b/recipes/gtk-webcore/midori_0.0.10.bb @@ -0,0 +1,3 @@ +require midori.inc + + diff --git a/recipes/gtk-webcore/midori_0.0.11.bb b/recipes/gtk-webcore/midori_0.0.11.bb new file mode 100644 index 0000000000..b879fef57b --- /dev/null +++ b/recipes/gtk-webcore/midori_0.0.11.bb @@ -0,0 +1 @@ +require midori.inc diff --git a/recipes/gtk-webcore/midori_0.0.12.bb b/recipes/gtk-webcore/midori_0.0.12.bb new file mode 100644 index 0000000000..b879fef57b --- /dev/null +++ b/recipes/gtk-webcore/midori_0.0.12.bb @@ -0,0 +1 @@ +require midori.inc diff --git a/recipes/gtk-webcore/midori_0.0.13.bb b/recipes/gtk-webcore/midori_0.0.13.bb new file mode 100644 index 0000000000..b879fef57b --- /dev/null +++ b/recipes/gtk-webcore/midori_0.0.13.bb @@ -0,0 +1 @@ +require midori.inc diff --git a/recipes/gtk-webcore/midori_0.0.15.bb b/recipes/gtk-webcore/midori_0.0.15.bb new file mode 100644 index 0000000000..b879fef57b --- /dev/null +++ b/recipes/gtk-webcore/midori_0.0.15.bb @@ -0,0 +1 @@ +require midori.inc diff --git a/recipes/gtk-webcore/midori_0.0.17.bb b/recipes/gtk-webcore/midori_0.0.17.bb new file mode 100644 index 0000000000..1278d21cbf --- /dev/null +++ b/recipes/gtk-webcore/midori_0.0.17.bb @@ -0,0 +1,5 @@ +require midori.inc + +SRC_URI += "file://webkit-update.patch;patch=1" + + diff --git a/recipes/gtk-webcore/midori_0.0.18.bb b/recipes/gtk-webcore/midori_0.0.18.bb new file mode 100644 index 0000000000..bb144f8600 --- /dev/null +++ b/recipes/gtk-webcore/midori_0.0.18.bb @@ -0,0 +1,6 @@ +require midori.inc + +PR = "r2" + +SRC_URI += "file://desktop.patch;patch=1" + diff --git a/recipes/gtk-webcore/midori_0.0.21.bb b/recipes/gtk-webcore/midori_0.0.21.bb new file mode 100644 index 0000000000..e10d92bd78 --- /dev/null +++ b/recipes/gtk-webcore/midori_0.0.21.bb @@ -0,0 +1,5 @@ +require midori.inc + +SRC_URI = "http://goodies.xfce.org/releases/midori/midori-${PV}.tar.bz2" + + diff --git a/recipes/gtk-webcore/midori_0.0.8.bb b/recipes/gtk-webcore/midori_0.0.8.bb new file mode 100644 index 0000000000..23d0179375 --- /dev/null +++ b/recipes/gtk-webcore/midori_0.0.8.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Midori is a lightweight web browser." +LICENSE = "GPLv2" + +DEPENDS = "webkit-gtk libsexy" + +inherit autotools pkgconfig + +SRC_URI = "http://software.twotoasts.de/media/midori/midori-${PV}.tar.gz \ + " + + diff --git a/recipes/gtk-webcore/midori_0.1.2.bb b/recipes/gtk-webcore/midori_0.1.2.bb new file mode 100644 index 0000000000..42ac708d01 --- /dev/null +++ b/recipes/gtk-webcore/midori_0.1.2.bb @@ -0,0 +1,29 @@ +require midori.inc + +DEPENDS += "python-native python-docutils-native" + +SRC_URI = "http://goodies.xfce.org/releases/midori/midori-${PV}.tar.bz2" + + +do_configure() { + ./configure \ + --prefix=${prefix} \ + --bindir=${bindir} \ + --sbindir=${sbindir} \ + --libexecdir=${libexecdir} \ + --datadir=${datadir} \ + --sysconfdir=${sysconfdir} \ + --sharedstatedir=${sharedstatedir} \ + --localstatedir=${localstatedir} \ + --libdir=${libdir} \ + --includedir=${includedir} \ + --infodir=${infodir} \ + --mandir=${mandir} \ + ${EXTRA_OECONF} + + sed -i /LINK_CC/d ./_build_/c4che/default.cache.py + echo "LINK_CC = '${CXX}'" >> ./_build_/c4che/default.cache.py +} + + + diff --git a/recipes/gtk-webcore/midori_git.bb b/recipes/gtk-webcore/midori_git.bb new file mode 100644 index 0000000000..f4039a414f --- /dev/null +++ b/recipes/gtk-webcore/midori_git.bb @@ -0,0 +1,33 @@ +require midori.inc + +DEPENDS += "python-native python-docutils-native" + +# increment PR every time SRCREV is updated! +PR = "r0" +PV = "0.1.2+${PR}+gitr${SRCREV}" + +SRC_URI = "http://git.xfce.org/kalikiana/midori/snapshot/midori-${SRCREV}.tar.bz2" +S = "${WORKDIR}/midori-${SRCREV}" + +do_configure() { + ./configure \ + --prefix=${prefix} \ + --bindir=${bindir} \ + --sbindir=${sbindir} \ + --libexecdir=${libexecdir} \ + --datadir=${datadir} \ + --sysconfdir=${sysconfdir} \ + --sharedstatedir=${sharedstatedir} \ + --localstatedir=${localstatedir} \ + --libdir=${libdir} \ + --includedir=${includedir} \ + --infodir=${infodir} \ + --mandir=${mandir} \ + ${EXTRA_OECONF} + + sed -i /LINK_CC/d ./_build_/c4che/default.cache.py + echo "LINK_CC = '${CXX}'" >> ./_build_/c4che/default.cache.py +} + + + diff --git a/recipes/gtk-webcore/osb-browser-0.5.0/no-pedantic.patch b/recipes/gtk-webcore/osb-browser-0.5.0/no-pedantic.patch new file mode 100644 index 0000000000..faabbbf15f --- /dev/null +++ b/recipes/gtk-webcore/osb-browser-0.5.0/no-pedantic.patch @@ -0,0 +1,11 @@ +--- osb-browser-0.5.0.orig/configure.in 2004-10-18 17:40:28.000000000 +0200 ++++ osb-browser-0.5.0/configure.in 2004-10-24 01:23:26.000000000 +0200 +@@ -54,7 +54,7 @@ + if test "x$GCC" = "xyes"; then + case " $CFLAGS " in + *[\ \ ]-Wall[\ \ ]*) ;; +- *) CFLAGS="$CFLAGS -Wall -Werror -ansi -pedantic" ;; ++ *) CFLAGS="$CFLAGS -Wall -Werror -ansi" ;; + esac + fi + changequote([,])dnl diff --git a/recipes/gtk-webcore/osb-browser_0.5.0.bb b/recipes/gtk-webcore/osb-browser_0.5.0.bb new file mode 100644 index 0000000000..a401de6129 --- /dev/null +++ b/recipes/gtk-webcore/osb-browser_0.5.0.bb @@ -0,0 +1,11 @@ +LICENSE = "GPL" +DESCRIPTION = "Gtk+ WebCore - reference browser" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +PRIORITY = "optional" +DEPENDS = "osb-nrcit gtk+ glib-2.0 libglade" +SECTION = "gpe" + +SRC_URI = "${SOURCEFORGE_MIRROR}/gtk-webcore/osb-browser-${PV}.tar.gz \ + file://no-pedantic.patch;patch=1" + +inherit autotools diff --git a/recipes/gtk-webcore/osb-browser_20050430.bb b/recipes/gtk-webcore/osb-browser_20050430.bb new file mode 100644 index 0000000000..749698eba5 --- /dev/null +++ b/recipes/gtk-webcore/osb-browser_20050430.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "Gtk+ WebCore - reference browser" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +LICENSE = "GPL" +PRIORITY = "optional" +SECTION = "gpe" + +FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}" +PV = "0.5.0+cvs${FIXEDSRCDATE}" +PR = "r1" + +DEPENDS = "osb-nrcit gtk+ glib-2.0 libglade" +RRECOMMENDS = "gdk-pixbuf-loader-gif gdk-pixbuf-loader-ico gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-png" + +SRC_URI = "cvs://anonymous@gtk-webcore.cvs.sourceforge.net/cvsroot/gtk-webcore;module=osb-browser;date=${FIXEDSRCDATE} \ + file://no-pedantic.patch;patch=1" +S = "${WORKDIR}/osb-browser" + +inherit autotools diff --git a/recipes/gtk-webcore/osb-browser_20060212.bb b/recipes/gtk-webcore/osb-browser_20060212.bb new file mode 100644 index 0000000000..608b3ec014 --- /dev/null +++ b/recipes/gtk-webcore/osb-browser_20060212.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Gtk+ WebCore - reference browser" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +LICENSE = "GPL" +PRIORITY = "optional" +SECTION = "gpe" + +FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}" +PV = "0.5.0+cvs${FIXEDSRCDATE}" +PR = "r0" + +DEPENDS = "osb-nrcit gtk+ glib-2.0 libglade" +RRECOMMENDS = "gdk-pixbuf-loader-gif gdk-pixbuf-loader-ico gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-png" + +SRC_URI = "cvs://anonymous@gtk-webcore.cvs.sourceforge.net/cvsroot/gtk-webcore;module=osb-browser;date=${FIXEDSRCDATE} \ + file://no-pedantic.patch;patch=1" +S = "${WORKDIR}/osb-browser" + +DEFAULT_PREFERENCE = "${@['-1', '1'][not bb.data.getVar('PREFERRED_VERSION_gcc-cross', d, 1) or bb.data.getVar('PREFERRED_VERSION_gcc-cross', d, 1).split('.')[0] == '4']}" + +inherit autotools diff --git a/recipes/gtk-webcore/osb-browser_svn.bb b/recipes/gtk-webcore/osb-browser_svn.bb new file mode 100644 index 0000000000..912215cfbd --- /dev/null +++ b/recipes/gtk-webcore/osb-browser_svn.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "Gtk+ WebCore - reference browser" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +SECTION = "gpe" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "osb-nrcit gtk+ glib-2.0 libglade" +RRECOMMENDS = "gdk-pixbuf-loader-gif gdk-pixbuf-loader-ico gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-png" +PV = "0.5.0+svnr${SRCREV}" +PR = "r0" + +inherit autotools + +SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=osb-browser;proto=https" + +S = "${WORKDIR}/osb-browser" + +DEFAULT_PREFERENCE = "-1" + diff --git a/recipes/gtk-webcore/osb-jscore-0.5.0/gcc4-fno-threadsafe-statics.patch b/recipes/gtk-webcore/osb-jscore-0.5.0/gcc4-fno-threadsafe-statics.patch new file mode 100644 index 0000000000..44e69b2707 --- /dev/null +++ b/recipes/gtk-webcore/osb-jscore-0.5.0/gcc4-fno-threadsafe-statics.patch @@ -0,0 +1,11 @@ +--- osb-jscore-0.5.0/configure.in_orig 2006-09-18 00:37:27.000000000 +0000 ++++ osb-jscore-0.5.0/configure.in 2006-09-18 00:37:51.000000000 +0000 +@@ -61,7 +61,7 @@ + fi + changequote([,])dnl + +-CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-rtti -nostdinc++" ++CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-rtti -nostdinc++ -fno-threadsafe-statics" + LDFLAGS="$LDFLAGS -nodefaultlibs -lgcc -lc -lm" + + CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)/kjs -I\$(top_srcdir)/pcre -I\$(top_srcdir)/" diff --git a/recipes/gtk-webcore/osb-jscore-0.5.0/libm.patch b/recipes/gtk-webcore/osb-jscore-0.5.0/libm.patch new file mode 100644 index 0000000000..b0c0cc6af2 --- /dev/null +++ b/recipes/gtk-webcore/osb-jscore-0.5.0/libm.patch @@ -0,0 +1,13 @@ +Index: osb-jscore-0.5.0/configure.in +=================================================================== +--- osb-jscore-0.5.0.orig/configure.in 2004-10-18 11:39:43.000000000 -0400 ++++ osb-jscore-0.5.0/configure.in 2005-02-02 17:36:36.551550088 -0500 +@@ -18,6 +18,8 @@ + AC_CHECK_HEADERS(string.h strings.h float.h) + + ++# isnan & friends generally come from libm, so link to it if its available ++AC_CHECK_LIB(m, sin) + + AC_CHECK_FUNCS(isnan,[ + AC_DEFINE(HAVE_FUNC_ISNAN,[],[Define to 1 if you have isnan function.]) diff --git a/recipes/gtk-webcore/osb-jscore-0.5.0/missing-includes.patch b/recipes/gtk-webcore/osb-jscore-0.5.0/missing-includes.patch new file mode 100644 index 0000000000..42d6ebc9f8 --- /dev/null +++ b/recipes/gtk-webcore/osb-jscore-0.5.0/missing-includes.patch @@ -0,0 +1,10 @@ +--- osb-jscore-0.5.0.orig/kjs/lookup.h 2004-09-23 10:27:54.000000000 +0200 ++++ osb-jscore-0.5.0/kjs/lookup.h 2004-10-23 22:09:47.000000000 +0200 +@@ -24,6 +24,7 @@ + #define _KJSLOOKUP_H_ + + #include "identifier.h" ++#include "object.h" + #include "value.h" + #include <stdio.h> + diff --git a/recipes/gtk-webcore/osb-jscore-0.5.0/superh-aclocal.patch b/recipes/gtk-webcore/osb-jscore-0.5.0/superh-aclocal.patch new file mode 100644 index 0000000000..706dead8c3 --- /dev/null +++ b/recipes/gtk-webcore/osb-jscore-0.5.0/superh-aclocal.patch @@ -0,0 +1,11 @@ +--- osb-jscore-0.5.0/aclocal.m4_orig 2006-09-18 00:49:32.000000000 +0000 ++++ osb-jscore-0.5.0/aclocal.m4 2006-09-18 00:49:52.000000000 +0000 +@@ -4299,7 +4299,7 @@ + # This must be Linux ELF. + linux-gnu*) + case $host_cpu in +- alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | s390* | x86_64*) ++ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | s390* | sh* | x86_64*) + lt_cv_deplibs_check_method=pass_all ;; + *) + # glibc up to 2.1.1 does not perform some relocations on ARM diff --git a/recipes/gtk-webcore/osb-jscore-0.5.0/superh-ustring-declaration-error.patch b/recipes/gtk-webcore/osb-jscore-0.5.0/superh-ustring-declaration-error.patch new file mode 100644 index 0000000000..c0c52444c8 --- /dev/null +++ b/recipes/gtk-webcore/osb-jscore-0.5.0/superh-ustring-declaration-error.patch @@ -0,0 +1,47 @@ +--- osb-jscore-0.5.0/kjs/ustring.cpp_orig 2006-09-18 01:29:11.000000000 +0000 ++++ osb-jscore-0.5.0/kjs/ustring.cpp 2006-09-18 01:29:46.000000000 +0000 +@@ -132,7 +132,7 @@ + return *this; + } + +-bool KJS::operator==(const KJS::CString& c1, const KJS::CString& c2) ++bool operator==(const KJS::CString& c1, const KJS::CString& c2) + { + int len = c1.size(); + return len == c2.size() && (len == 0 || memcmp(c1.c_str(), c2.c_str(), len) == 0); +@@ -1094,7 +1094,7 @@ + rep->deref(); + } + +-bool KJS::operator==(const UString& s1, const UString& s2) ++bool operator==(const UString& s1, const UString& s2) + { + if (s1.rep->len != s2.rep->len) + return false; +@@ -1103,7 +1103,7 @@ + s1.rep->len * sizeof(UChar)) == 0); + } + +-bool KJS::operator==(const UString& s1, const char *s2) ++bool operator==(const UString& s1, const char *s2) + { + if (s2 == 0) { + return s1.isEmpty(); +@@ -1121,7 +1121,7 @@ + return u == uend && *s2 == 0; + } + +-bool KJS::operator<(const UString& s1, const UString& s2) ++bool operator<(const UString& s1, const UString& s2) + { + const int l1 = s1.size(); + const int l2 = s2.size(); +@@ -1140,7 +1140,7 @@ + return (l1 < l2); + } + +-int KJS::compare(const UString& s1, const UString& s2) ++int compare(const UString& s1, const UString& s2) + { + const int l1 = s1.size(); + const int l2 = s2.size(); diff --git a/recipes/gtk-webcore/osb-jscore_0.5.0.bb b/recipes/gtk-webcore/osb-jscore_0.5.0.bb new file mode 100644 index 0000000000..434c39fde3 --- /dev/null +++ b/recipes/gtk-webcore/osb-jscore_0.5.0.bb @@ -0,0 +1,36 @@ +LICENSE = "GPL" +DESCRIPTION = "Gtk+ WebCore - JavaScriptCore" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +PRIORITY = "optional" +SECTION = "gpe" +PR = "r3" + +SRC_URI = "${SOURCEFORGE_MIRROR}/gtk-webcore/osb-jscore-${PV}.tar.gz \ + file://missing-includes.patch;patch=1 \ + file://libm.patch;patch=1" + +SRC_URI_append_sh3 = " file://superh-aclocal.patch;patch=1 \ + file://gcc4-fno-threadsafe-statics.patch;patch=1 \ + file://superh-ustring-declaration-error.patch;patch=1" + +inherit autotools pkgconfig + +do_configure () { + autotools_do_configure + cd ${S} + + # prevent libtool from linking libs against libstdc++, libgcc, ... + cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp + mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool +} + +do_stage () { + oe_libinstall -so -C kjs libjscore ${STAGING_LIBDIR} + + autotools_stage_includes + + install -d ${STAGING_INCDIR}/osb/JavaScriptCore + for i in ${S}/kjs/*.h ${S}/kjs/new; do + install -m 0644 $i ${STAGING_INCDIR}/osb/JavaScriptCore + done +} diff --git a/recipes/gtk-webcore/osb-jscore_20050430.bb b/recipes/gtk-webcore/osb-jscore_20050430.bb new file mode 100644 index 0000000000..f024bbfa02 --- /dev/null +++ b/recipes/gtk-webcore/osb-jscore_20050430.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "Gtk+ WebCore - JavaScriptCore" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +LICENSE = "GPL" +PRIORITY = "optional" +SECTION = "gpe" + +FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}" +PV = "0.5.0+cvs${FIXEDSRCDATE}" +PR = "r1" + +SRC_URI = "cvs://anonymous@gtk-webcore.cvs.sourceforge.net/cvsroot/gtk-webcore;module=JavaScriptCore;date=${FIXEDSRCDATE} \ + file://libm.patch;patch=1" +S = "${WORKDIR}/JavaScriptCore" + +inherit autotools pkgconfig + +# zap CPPFLAGS to avoid trouble with internal vs. pcre from staging +CPPFLAGS = "" + +do_configure () { + autotools_do_configure + cd ${S} + + # prevent libtool from linking libs against libstdc++, libgcc, ... + cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp + mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool +} + +do_stage () { + oe_libinstall -so -C kjs libjscore ${STAGING_LIBDIR} + + autotools_stage_includes + + install -d ${STAGING_INCDIR}/osb/JavaScriptCore + for i in ${S}/kjs/*.h ${S}/kjs/new; do + install -m 0644 $i ${STAGING_INCDIR}/osb/JavaScriptCore + done +} diff --git a/recipes/gtk-webcore/osb-jscore_20070816.bb b/recipes/gtk-webcore/osb-jscore_20070816.bb new file mode 100644 index 0000000000..672b0ba0a7 --- /dev/null +++ b/recipes/gtk-webcore/osb-jscore_20070816.bb @@ -0,0 +1,40 @@ +DESCRIPTION = "Gtk+ WebCore - JavaScriptCore" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +LICENSE = "GPL" +PRIORITY = "optional" +SECTION = "gpe" + +FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}" +PV = "0.5.0+cvs${FIXEDSRCDATE}" +PR = "r0" + +SRC_URI = "cvs://anonymous@gtk-webcore.cvs.sourceforge.net/cvsroot/gtk-webcore;module=JavaScriptCore;date=${FIXEDSRCDATE} \ + file://gcc4-fno-threadsafe-statics-JavaScriptCore.patch;patch=1" +S = "${WORKDIR}/JavaScriptCore" + +DEFAULT_PREFERENCE = "-1" + +inherit autotools pkgconfig + +# zap CPPFLAGS to avoid trouble with internal vs. pcre from staging +CPPFLAGS = "" + +do_configure () { + autotools_do_configure + cd ${S} + + # prevent libtool from linking libs against libstdc++, libgcc, ... + cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp + mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool +} + +do_stage () { + oe_libinstall -so -C kjs libjscore ${STAGING_LIBDIR} + + autotools_stage_includes + + install -d ${STAGING_INCDIR}/osb/JavaScriptCore + for i in ${S}/kjs/*.h ${S}/kjs/new; do + install -m 0644 $i ${STAGING_INCDIR}/osb/JavaScriptCore + done +} diff --git a/recipes/gtk-webcore/osb-jscore_svn.bb b/recipes/gtk-webcore/osb-jscore_svn.bb new file mode 100644 index 0000000000..554ab5b96d --- /dev/null +++ b/recipes/gtk-webcore/osb-jscore_svn.bb @@ -0,0 +1,39 @@ +DESCRIPTION = "Gtk+ WebCore - JavaScriptCore" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +LICENSE = "GPL" +PRIORITY = "optional" + +PV = "0.5.2+svnr${SRCREV}" +PR = "r1" + +SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=JavaScriptCore;proto=https \ + file://gcc4-fno-threadsafe-statics-JavaScriptCore.patch;patch=1" + +S = "${WORKDIR}/JavaScriptCore" + +inherit autotools pkgconfig + +# zap CPPFLAGS to avoid trouble with internal vs. pcre from staging +CPPFLAGS = "" + +do_configure () { + autotools_do_configure + cd ${S} + + # prevent libtool from linking libs against libstdc++, libgcc, ... + cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp + mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool +} + +do_stage () { + oe_libinstall -so -C kjs libgtk_webcore_jscore ${STAGING_LIBDIR} + + autotools_stage_includes + + install -d ${STAGING_INCDIR}/osb/JavaScriptCore + for i in ${S}/kjs/*.h ${S}/kjs/new; do + install -m 0644 $i ${STAGING_INCDIR}/osb/JavaScriptCore + install -d ${STAGING_INCDIR}/../share/gtk-webcore-jscore + install -m 0755 ${S}/kjs/create_hash_table ${STAGING_INCDIR}/../share/gtk-webcore-jscore + done +} diff --git a/recipes/gtk-webcore/osb-nrcit/pkgconfig_fix.patch b/recipes/gtk-webcore/osb-nrcit/pkgconfig_fix.patch new file mode 100644 index 0000000000..d26009bbb7 --- /dev/null +++ b/recipes/gtk-webcore/osb-nrcit/pkgconfig_fix.patch @@ -0,0 +1,13 @@ +Index: NRCit/gtk-webcore-nrcit.pc.in +=================================================================== +--- NRCit.orig/gtk-webcore-nrcit.pc.in 2008-02-29 13:46:41.000000000 +0000 ++++ NRCit/gtk-webcore-nrcit.pc.in 2008-02-29 13:46:51.000000000 +0000 +@@ -6,6 +6,6 @@ + Name: gtk-webcore-nrcit + Description: Gtk+-WebCore HTML rendering engine, browser interface + Version: @VERSION@ +-Requires: gtk-webcore-jscore gtk-webcore-nrcore xft fontconfig gdk-2.0 gtk+-2.0 glib-2.0 +-Libs: -L${libdir} -lgtk_webcore_nrcore -lgtk_webcore_nrcit -lgthread-2.0 -lgobject-2.0 @LIBCURL_LIBS@ ++Requires: gtk-webcore-jscore gtk-webcore-nrcore xft fontconfig gdk-2.0 gtk+-2.0 glib-2.0 libcurl ++Libs: -L${libdir} -lgtk_webcore_nrcore -lgtk_webcore_nrcit -lgthread-2.0 -lgobject-2.0 + Cflags: -I${includedir}/gtk-webcore/webi -I${includedir}/gtk-webcore diff --git a/recipes/gtk-webcore/osb-nrcit_0.5.0.bb b/recipes/gtk-webcore/osb-nrcit_0.5.0.bb new file mode 100644 index 0000000000..ca0a845c2a --- /dev/null +++ b/recipes/gtk-webcore/osb-nrcit_0.5.0.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "Gtk+ WebCore - NRCit embeddable browser component" +LICENSE = "nokia" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +PRIORITY = "optional" +DEPENDS = "curl osb-nrcore" +SECTION = "gpe" +PR = "r2" + +SRC_URI = "${SOURCEFORGE_MIRROR}/gtk-webcore/osb-nrcit-${PV}.tar.gz" + +inherit autotools pkgconfig + +do_configure () { + autotools_do_configure + cd ${S} + + # prevent libtool from linking libs against libstdc++, libgcc, ... + cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp + mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool +} + +do_stage () { + oe_libinstall -so -C src libnrcit ${STAGING_LIBDIR} + + autotools_stage_includes + + install -d ${STAGING_INCDIR}/osb + install -m 0644 ${S}/src/gtk/gtk-khtml.h ${STAGING_INCDIR}/osb + install -m 0644 ${S}/src/osb.h ${STAGING_INCDIR}/osb +} diff --git a/recipes/gtk-webcore/osb-nrcit_20050430.bb b/recipes/gtk-webcore/osb-nrcit_20050430.bb new file mode 100644 index 0000000000..261b52f01b --- /dev/null +++ b/recipes/gtk-webcore/osb-nrcit_20050430.bb @@ -0,0 +1,39 @@ +DESCRIPTION = "Gtk+ WebCore - NRCit embeddable browser component" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +LICENSE = "nokia" +PRIORITY = "optional" +SECTION = "gpe" + +FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}" +PV = "0.5.0+cvs${FIXEDSRCDATE}" +PR = "r3" + +DEPENDS = "curl librsvg osb-nrcore" + +SRC_URI = "cvs://anonymous@gtk-webcore.cvs.sourceforge.net/cvsroot/gtk-webcore;module=NRCit;date=${FIXEDSRCDATE} \ + file://stop-load.image-loading.patch;patch=1 \ + file://gdk-colorspace.diff;patch=1 \ + file://fix-loading-error-report.patch;patch=1" + +S = "${WORKDIR}/NRCit" + +inherit autotools pkgconfig + +do_configure () { + autotools_do_configure + cd ${S} + + # prevent libtool from linking libs against libstdc++, libgcc, ... + cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp + mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool +} + +do_stage () { + oe_libinstall -so -C src libnrcit ${STAGING_LIBDIR} + + autotools_stage_includes + + install -d ${STAGING_INCDIR}/osb + install -m 0644 ${S}/src/gtk/gtk-khtml.h ${STAGING_INCDIR}/osb + install -m 0644 ${S}/src/osb.h ${STAGING_INCDIR}/osb +} diff --git a/recipes/gtk-webcore/osb-nrcit_20070816.bb b/recipes/gtk-webcore/osb-nrcit_20070816.bb new file mode 100644 index 0000000000..3441d1d508 --- /dev/null +++ b/recipes/gtk-webcore/osb-nrcit_20070816.bb @@ -0,0 +1,39 @@ +DESCRIPTION = "Gtk+ WebCore - NRCit embeddable browser component" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +LICENSE = "nokia" +PRIORITY = "optional" +SECTION = "gpe" + +FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}" +PV = "0.5.0+cvs${FIXEDSRCDATE}" +PR = "r0" + +DEPENDS = "curl librsvg osb-nrcore" + +SRC_URI = "cvs://anonymous@gtk-webcore.cvs.sourceforge.net/cvsroot/gtk-webcore;module=NRCit;date=${FIXEDSRCDATE} \ + file://stop-load.image-loading.patch;patch=1 \ + file://gcc4-fno-threadsafe-statics-NRCit.patch;patch=1" +S = "${WORKDIR}/NRCit" + +DEFAULT_PREFERENCE = "-1" + +inherit autotools pkgconfig + +do_configure () { + autotools_do_configure + cd ${S} + + # prevent libtool from linking libs against libstdc++, libgcc, ... + cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp + mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool +} + +do_stage () { + oe_libinstall -so -C src libnrcit ${STAGING_LIBDIR} + + autotools_stage_includes + + install -d ${STAGING_INCDIR}/osb + install -m 0644 ${S}/src/gtk/gtk-khtml.h ${STAGING_INCDIR}/osb + install -m 0644 ${S}/src/osb.h ${STAGING_INCDIR}/osb +} diff --git a/recipes/gtk-webcore/osb-nrcit_svn.bb b/recipes/gtk-webcore/osb-nrcit_svn.bb new file mode 100644 index 0000000000..57bb096183 --- /dev/null +++ b/recipes/gtk-webcore/osb-nrcit_svn.bb @@ -0,0 +1,39 @@ +DESCRIPTION = "Gtk+ WebCore - NRCit embeddable browser component" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +LICENSE = "nokia" +PRIORITY = "optional" +SECTION = "gpe" + +PV = "0.5.2+svnr${SRCREV}" +PR = "r1" + +DEPENDS = "curl librsvg osb-nrcore pango" + +SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=NRCit;proto=https \ + file://pkgconfig_fix.patch;patch=1 \ + file://gcc4-fno-threadsafe-statics-NRCit.patch;patch=1" + +inherit autotools pkgconfig + +S = "${WORKDIR}/NRCit" + +EXTRA_OECONF = " --enable-pango " + +do_configure () { + autotools_do_configure + cd ${S} + + # prevent libtool from linking libs against libstdc++, libgcc, ... + cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp + mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool +} + +do_stage () { + oe_libinstall -so -C src libgtk_webcore_nrcit ${STAGING_LIBDIR} + + autotools_stage_includes + + install -d ${STAGING_INCDIR}/osb + install -m 0644 ${S}/src/gtk/gtk-khtml.h ${STAGING_INCDIR}/osb + install -m 0644 ${S}/src/osb.h ${STAGING_INCDIR}/osb +} diff --git a/recipes/gtk-webcore/osb-nrcore-0.5.0/KWQDictImpl.patch b/recipes/gtk-webcore/osb-nrcore-0.5.0/KWQDictImpl.patch new file mode 100644 index 0000000000..8f43d00a38 --- /dev/null +++ b/recipes/gtk-webcore/osb-nrcore-0.5.0/KWQDictImpl.patch @@ -0,0 +1,375 @@ +Index: NRCore/kwiq/KWQDictImpl.cpp +=================================================================== +--- NRCore/kwiq/KWQDictImpl.cpp 2004/10/18 18:39:48 1.3 ++++ NRCore/kwiq/KWQDictImpl.cpp 2004/10/25 10:08:30 +@@ -30,26 +30,90 @@ + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ ++#include <string.h> + + #include "KWQDictImpl.h" ++#include "KWQAssertions.h" ++#include "KWQMap.h" + #include <CoreFoundation/CoreFoundation.h> ++ ++typedef void (* DeleteFunction) (void *); ++ ++class KWQDictPrivate ++{ ++public: ++ KWQDictPrivate(int size, bool caseSensitive, DeleteFunction); ++ KWQDictPrivate(const KWQDictPrivate &dp); ++ ~KWQDictPrivate(); ++ ++ QMap<QString,void*> map; ++ DeleteFunction deleteFunc; ++ bool modifyCase; ++ KWQDictIteratorPrivate *iterators; ++}; ++ ++class KWQDictIteratorPrivate ++{ ++public: ++ KWQDictIteratorPrivate(KWQDictPrivate *); ++ ~KWQDictIteratorPrivate(); ++ ++ void remove(const QString &key); ++ void dictDestroyed(); ++ ++ uint count; ++ uint pos; ++ QString **keys; ++ void **values; ++ KWQDictPrivate *dict; ++ KWQDictIteratorPrivate *next; ++ KWQDictIteratorPrivate *prev; ++}; ++ ++KWQDictPrivate::KWQDictPrivate(int size, bool caseSensitive, ++ DeleteFunction _deleteFunc) ++ : deleteFunc(_deleteFunc), ++ modifyCase(!caseSensitive), ++ iterators(0) ++{ ++} ++ ++KWQDictPrivate::KWQDictPrivate(const KWQDictPrivate &dp) ++ : map(dp.map), ++ deleteFunc(dp.deleteFunc), ++ modifyCase(dp.modifyCase), ++ iterators(0) ++{ ++} ++ ++KWQDictPrivate::~KWQDictPrivate() ++{ ++ for (KWQDictIteratorPrivate *it = iterators; it; it = it->next) { ++ it->dictDestroyed(); ++ } ++} ++ ++ + /* + * No KWQDictImpl::~KWQDictImpl() because QDict::~QDict calls KWQDictImpl::clear() + * on + */ + KWQDictImpl::KWQDictImpl(int size, bool caseSensitive, void (*deleteFunc_)(void *)) +- : deleteFunc(deleteFunc_) +- , modifyCase(!caseSensitive) ++ : d(new KWQDictPrivate(size, caseSensitive, deleteFunc_)) + { ++} + ++KWQDictImpl::~KWQDictImpl() ++{ ++ delete d; + } + + void KWQDictImpl::insert(const QString &key, const void *value) + { +- if (modifyCase) +- map.insert(key.lower(), const_cast<void*>(value)); ++ if (d->modifyCase) ++ d->map.insert(key.lower(), const_cast<void*>(value)); + else +- map.insert(key, const_cast<void*>(value) ); ++ d->map.insert(key, const_cast<void*>(value) ); + } + + bool KWQDictImpl::remove(const QString &key, bool deleteItem) +@@ -57,21 +121,26 @@ + QMapIterator<QString, void*> i; + void* data; + +- if (modifyCase) +- i = map.find(key.lower()); ++ if (d->modifyCase) ++ i = d->map.find(key.lower()); + else +- i = map.find(key); ++ i = d->map.find(key); + +- if (i == map.end()) ++ if (i == d->map.end()) + return false; + + data = *i; + +- map.remove(i); +- if (deleteItem && deleteFunc) { +- deleteFunc(data); ++ d->map.remove(i); ++ if (deleteItem && d->deleteFunc) { ++ d->deleteFunc(data); + return true; + } ++ ++ for (KWQDictIteratorPrivate *it = d->iterators; it; it = it->next) { ++ it->remove(key); ++ } ++ + return false; + } + +@@ -79,71 +148,159 @@ + { + if (deleteItem) + { +- QMapIterator<QString,void*> i = map.begin(); +- QMapIterator<QString,void*> end = map.end(); ++ QMapIterator<QString,void*> i = d->map.begin(); ++ QMapIterator<QString,void*> end = d->map.end(); + void *data; + while (i!=end) + { + data=*i; +- if (deleteFunc) deleteFunc(data); ++ if (d->deleteFunc) d->deleteFunc(data); + ++i; + } + } + +- map.clear(); ++ d->map.clear(); + } + + uint KWQDictImpl::count() const + { +- return map.count(); ++ return d->map.count(); + } + + void *KWQDictImpl::find(const QString &key) const + { + QMapConstIterator<QString,void*> i; +- if (modifyCase) +- i = map.find(key.lower()); ++ if (d->modifyCase) ++ i = d->map.find(key.lower()); + else +- i = map.find(key); ++ i = d->map.find(key); + +- if (i == map.end()) ++ if (i == d->map.end()) + return 0; + return *i; + } + ++void KWQDictImpl::swap(KWQDictImpl &di) ++{ ++ KWQDictPrivate *tmp; ++ ++ tmp = di.d; ++ di.d = d; ++ d = tmp; ++} ++ ++KWQDictImpl &KWQDictImpl::assign(const KWQDictImpl &di, bool deleteItems) ++{ ++ KWQDictImpl tmp(di); ++ ++ if (deleteItems) { ++ clear(true); ++ } ++ ++ swap(tmp); ++ ++ return *this; ++} ++ ++ ++KWQDictIteratorImpl::KWQDictIteratorImpl(const KWQDictImpl &di) ++ : d(new KWQDictIteratorPrivate(di.d)) ++{ ++} ++ + uint KWQDictIteratorImpl::count() const + { +- return dict->map.count(); ++ return d->count; + } + + void* KWQDictIteratorImpl::current() const + { +- if (i == dict->map.end()) +- return 0; +- return *i; ++ if (d->pos >= d->count) { ++ return NULL; ++ } ++ return d->values[d->pos]; + } + + void* KWQDictIteratorImpl::toFirst() + { +- i=dict->map.begin(); +- if (i == dict->map.end()) +- return 0; +- +- return *i; ++ d->pos = 0; ++ return current(); + } ++ + void* KWQDictIteratorImpl::operator++() + { +- ++i; +- if (i==dict->map.end()) +- return 0; +- return *i; ++ ++d->pos; ++ return current(); + } + + QString KWQDictIteratorImpl::currentStringKey() const ++{ ++ if (d->pos >= d->count) { ++ return QString(); ++ } ++ return QString(*d->keys[d->pos]); ++} ++ ++ ++KWQDictIteratorPrivate::KWQDictIteratorPrivate(KWQDictPrivate *d) : ++ count(d->map.count()), ++ pos(0), ++ keys(new QString * [count]), ++ values(new void * [count]), ++ dict(d), ++ next(d->iterators), ++ prev(0) ++{ ++ d->iterators = this; ++ if (next) { ++ next->prev = this; ++ } ++ ++ unsigned int i = 0; ++ QMap<QString,void*>::Iterator it = d->map.begin(); ++ QMap<QString,void*>::Iterator end = d->map.end(); ++ while (it != end) { ++ keys[i] = new QString(it.key()); ++ values[i] = it.data(); ++ ++i; ++ ++it; ++ } ++ ASSERT(i==count); ++} ++ ++KWQDictIteratorPrivate::~KWQDictIteratorPrivate() + { +- if (i == dict->map.end() ) +- return QString(); ++ if (prev) { ++ prev->next = next; ++ } else if (dict) { ++ dict->iterators = next; ++ } ++ if (next) { ++ next->prev = prev; ++ } ++ ++ delete [] keys; ++ delete [] values; ++} + +- return QString(i.key()); ++void KWQDictIteratorPrivate::remove(const QString &key) ++{ ++ for (uint i = 0; i < count; ) { ++ if (*keys[i] != key) { ++ ++i; ++ } else { ++ --count; ++ if (pos > i) { ++ --pos; ++ } ++ memmove(&keys[i], &keys[i+1], sizeof(keys[i]) * (count - i)); ++ memmove(&values[i], &values[i+1], sizeof(values[i]) * (count - i)); ++ } ++ } + } + ++void KWQDictIteratorPrivate::dictDestroyed() ++{ ++ count = 0; ++ dict = 0; ++} +Index: NRCore/kwiq/KWQDictImpl.h +=================================================================== +--- NRCore/kwiq/KWQDictImpl.h 2004/09/23 08:27:53 1.1.1.1 ++++ NRCore/kwiq/KWQDictImpl.h 2004/10/25 10:08:30 +@@ -29,36 +29,42 @@ + #include "KWQMap.h" + #include "KWQString.h" + ++class KWQDictPrivate; ++class KWQDictIteratorPrivate; ++ + class KWQDictImpl { + public: + KWQDictImpl(int size, bool caseSensitive, void (*deleteFunc)(void *)); ++ ~KWQDictImpl(); + void insert(const QString &key, const void *value); + bool remove(const QString &key, bool deleteItems); + + void *find(const QString &key) const; + void clear(bool deleteItem); + uint count() const; +- private: +- void (*deleteFunc)(void*); +- QMap<QString,void*> map; +- bool modifyCase; ++ ++ KWQDictImpl &assign(const KWQDictImpl &pdi, bool deleteItems); ++private: ++ void swap(KWQDictImpl &di); ++ KWQDictPrivate *d; + friend class KWQDictIteratorImpl; + }; + + class KWQDictIteratorImpl { +- const KWQDictImpl *dict; +- QMapConstIterator<QString,void*> i; + public: +- KWQDictIteratorImpl(const KWQDictImpl &di) :dict(&di), i(di.map.begin()) { } ++ KWQDictIteratorImpl(const KWQDictImpl &di); + uint count() const ; + void *current() const; ++ ++ void* toFirst(); + +- void* toFirst(); +- + void *operator++(); + + + QString currentStringKey() const; ++private: ++ KWQDictIteratorPrivate *d; ++ + }; + + #endif diff --git a/recipes/gtk-webcore/osb-nrcore.inc b/recipes/gtk-webcore/osb-nrcore.inc new file mode 100644 index 0000000000..eca304959f --- /dev/null +++ b/recipes/gtk-webcore/osb-nrcore.inc @@ -0,0 +1,46 @@ +DESCRIPTION = "Gtk+ WebCore - rendering engine" +HOMEPAGE = "http://gtk-webcore.sourceforge.net/" +PRIORITY = "optional" +SECTION = "gpe" +LICENSE = "GPL" +DEPENDS = "glib-2.0 gtk+ pango osb-jscore libxt gperf-native" + +LEAD_SONAME = "libnrcore.so" + +inherit autotools pkgconfig + +#/khtml/css/cssproperties.h failes to generate properly with high parallel makes +PARALLEL_MAKE = "" + +EXTRA_OECONF += "--with-javascriptcore-prefix=${STAGING_EXECPREFIXDIR}" + +do_configure () { + autotools_do_configure + cd ${S} + + # prevent libtool from linking libs against libstdc++, libgcc, ... + cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp + mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool +} + +do_install_append() { + #backward compat for some apps + ln -sf ${datadir}/gtk-webcore-nrcore ${D}${datadir}/osb-nrcore +} + +FILES_${PN} += "${datadir}/gtk-webcore-nrcore" + + +do_stage () { + oe_libinstall -so libnrcore ${STAGING_LIBDIR} + oe_libinstall -so -C kwiq libnrcore_kwiq_gtk ${STAGING_LIBDIR} + + autotools_stage_includes + + install -d ${STAGING_INCDIR}/osb/NRCore + for i in ${S}/kwiq/WebCore*.h ${S}/kwiq/KWIQ*.h; do + install -m 0644 $i ${STAGING_INCDIR}/osb/NRCore + done +} + + diff --git a/recipes/gtk-webcore/osb-nrcore_0.5.0.bb b/recipes/gtk-webcore/osb-nrcore_0.5.0.bb new file mode 100644 index 0000000000..37800f3f78 --- /dev/null +++ b/recipes/gtk-webcore/osb-nrcore_0.5.0.bb @@ -0,0 +1,6 @@ +require osb-nrcore.inc + +PR = "r2" + +SRC_URI = "${SOURCEFORGE_MIRROR}/gtk-webcore/osb-nrcore-${PV}.tar.gz \ + file://KWQDictImpl.patch;patch=1" diff --git a/recipes/gtk-webcore/osb-nrcore_20050430.bb b/recipes/gtk-webcore/osb-nrcore_20050430.bb new file mode 100644 index 0000000000..c79f2b9fbd --- /dev/null +++ b/recipes/gtk-webcore/osb-nrcore_20050430.bb @@ -0,0 +1,11 @@ +require osb-nrcore.inc + +FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}" +PV = "0.5.0+cvs${FIXEDSRCDATE}" +PR = "r1" + +SRC_URI = "cvs://anonymous@gtk-webcore.cvs.sourceforge.net/cvsroot/gtk-webcore;module=NRCore;date=${FIXEDSRCDATE} \ + file://KWIQ-mimetype-segfault.patch;patch=1 \ + file://setHandle_segfault-fix.patch;patch=1" + +S = "${WORKDIR}/NRCore" diff --git a/recipes/gtk-webcore/osb-nrcore_20070816.bb b/recipes/gtk-webcore/osb-nrcore_20070816.bb new file mode 100644 index 0000000000..1c946d05c6 --- /dev/null +++ b/recipes/gtk-webcore/osb-nrcore_20070816.bb @@ -0,0 +1,14 @@ +require osb-nrcore.inc + +FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}" +PV = "0.5.0+cvs${FIXEDSRCDATE}" +PR = "r0" + +SRC_URI = "cvs://anonymous@gtk-webcore.cvs.sourceforge.net/cvsroot/gtk-webcore;module=NRCore;date=${FIXEDSRCDATE} \ + file://KWIQ-mimetype-segfault.patch;patch=1 \ + file://KWQKURL-urlcmp.patch;patch=1 \ + file://gcc4-fno-threadsafe-statics-NRCore.patch;patch=1" + +S = "${WORKDIR}/NRCore" + +DEFAULT_PREFERENCE = "-1" diff --git a/recipes/gtk-webcore/osb-nrcore_svn.bb b/recipes/gtk-webcore/osb-nrcore_svn.bb new file mode 100644 index 0000000000..b85c06e422 --- /dev/null +++ b/recipes/gtk-webcore/osb-nrcore_svn.bb @@ -0,0 +1,23 @@ +require osb-nrcore.inc + +PV = "0.5.2+svnr${SRCREV}" +PR = "r3" + +SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=NRCore;proto=https \ + file://gcc4-fno-threadsafe-statics-NRCore.patch;patch=1 \ + file://build_silence.patch;patch=0;maxdate=20070401 \ + file://path_fixes.patch;patch=1" + +S = "${WORKDIR}/NRCore" + +do_stage () { + oe_libinstall -so libgtk_webcore_nrcore ${STAGING_LIBDIR} + oe_libinstall -so -C kwiq libgtk_webcore_nrcore_kwiq_gtk ${STAGING_LIBDIR} + + autotools_stage_includes + + install -d ${STAGING_INCDIR}/osb/NRCore + for i in ${S}/kwiq/WebCore*.h ${S}/kwiq/KWIQ*.h; do + install -m 0644 $i ${STAGING_INCDIR}/osb/NRCore + done +} |