[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