[oe-commits] org.oe.dev midori: update to new webkit api
koen commit
openembedded-commits at lists.openembedded.org
Wed Mar 5 11:43:13 UTC 2008
midori: update to new webkit api
Author: koen at openembedded.org
Branch: org.openembedded.dev
Revision: 0a5c9b1c7783e7271142c9fd6458ea846337f1c6
ViewMTN: http://monotone.openembedded.org/revision/info/0a5c9b1c7783e7271142c9fd6458ea846337f1c6
Files:
1
packages/gtk-webcore/midori-0.0.17
packages/gtk-webcore/midori-0.0.17/webkit-update.patch
Diffs:
#
# mt diff -r40b43c5c55165d2599c998908533895cf1d370f8 -r0a5c9b1c7783e7271142c9fd6458ea846337f1c6
#
#
#
# add_dir "packages/gtk-webcore/midori-0.0.17"
#
# add_file "packages/gtk-webcore/midori-0.0.17/webkit-update.patch"
# content [fc9c69acae8925452a177401fef7812c146b9268]
#
============================================================
--- packages/gtk-webcore/midori-0.0.17/webkit-update.patch fc9c69acae8925452a177401fef7812c146b9268
+++ packages/gtk-webcore/midori-0.0.17/webkit-update.patch fc9c69acae8925452a177401fef7812c146b9268
@@ -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 at twotoasts.de>
++ Copyright (C) 2007-2008 Christian Dywan <christian at 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 at twotoasts.de>
++ Copyright (C) 2007-2008 Christian Dywan <christian at 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 at twotoasts.de>
++ Copyright (C) 2007-2008 Christian Dywan <christian at 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 at twotoasts.de>
++ Copyright (C) 2007-2008 Christian Dywan <christian at 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 at twotoasts.de>
++ Copyright (C) 2007-2008 Christian Dywan <christian at 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)\
+ %s
>>> DIFF TRUNCATED @ 16K
More information about the Openembedded-commits
mailing list