diff options
author | Koen Kooi <koen@openembedded.org> | 2008-03-05 11:20:44 +0000 |
---|---|---|
committer | Koen Kooi <koen@openembedded.org> | 2008-03-05 11:20:44 +0000 |
commit | 4267e234855d1bd2607b348be2c9321f82cf0b9b (patch) | |
tree | b7c2c75a80d7936b13a71d8b90dc7794e6846156 /packages/gtk-webcore | |
parent | 586805cbe45f4545d263c3c38111e4295f8c81b9 (diff) |
midori: update to new webkit api
Diffstat (limited to 'packages/gtk-webcore')
-rw-r--r-- | packages/gtk-webcore/midori-0.0.17/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/gtk-webcore/midori-0.0.17/webkit-update.patch | 676 |
2 files changed, 676 insertions, 0 deletions
diff --git a/packages/gtk-webcore/midori-0.0.17/.mtn2git_empty b/packages/gtk-webcore/midori-0.0.17/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/gtk-webcore/midori-0.0.17/.mtn2git_empty diff --git a/packages/gtk-webcore/midori-0.0.17/webkit-update.patch b/packages/gtk-webcore/midori-0.0.17/webkit-update.patch new file mode 100644 index 0000000000..d3d19123cf --- /dev/null +++ b/packages/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) |