From c36d00352f07ce39aa38c33dd2a5fd85393fa141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20St=C3=B6sel?= Date: Fri, 13 Apr 2012 19:26:30 +0200 Subject: [PATCH] Fix for "tab registarion" in adblock Fixes: https://bugs.launchpad.net/midori/+bug/977981 --- extensions/adblock.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/extensions/adblock.c b/extensions/adblock.c index 6efb360..3ec1bad 100644 --- a/extensions/adblock.c +++ b/extensions/adblock.c @@ -1031,20 +1031,14 @@ adblock_deactivate_cb (MidoriExtension* extension, MidoriBrowser* browser); static void -adblock_add_tab_foreach_cb (MidoriView* view, - MidoriBrowser* browser, - MidoriExtension* extension) -{ - adblock_add_tab_cb (browser, view, extension); -} - -static void adblock_app_add_browser_cb (MidoriApp* app, MidoriBrowser* browser, MidoriExtension* extension) { GtkWidget* statusbar; GtkWidget* image; + GtkWidget* view; + gint i; statusbar = katze_object_get_object (browser, "statusbar"); image = NULL; @@ -1054,8 +1048,10 @@ adblock_app_add_browser_cb (MidoriApp* app, g_object_set_data_full (G_OBJECT (browser), "status-image", image, (GDestroyNotify)gtk_widget_destroy); - midori_browser_foreach (browser, - (GtkCallback)adblock_add_tab_foreach_cb, extension); + i = 0; + while((view = midori_browser_get_nth_tab(browser, i++))) + adblock_add_tab_cb (browser, MIDORI_VIEW (view), extension); + g_signal_connect (browser, "add-tab", G_CALLBACK (adblock_add_tab_cb), extension); g_signal_connect (browser, "remove-tab", @@ -1512,6 +1508,8 @@ static void adblock_deactivate_cb (MidoriExtension* extension, MidoriBrowser* browser) { + gint i; + GtkWidget* view; MidoriApp* app = midori_extension_get_app (extension); MidoriWebSettings* settings = katze_object_get_object (app, "settings"); @@ -1525,7 +1523,10 @@ adblock_deactivate_cb (MidoriExtension* extension, browser, adblock_add_tab_cb, extension); g_signal_handlers_disconnect_by_func ( browser, adblock_remove_tab_cb, extension); - midori_browser_foreach (browser, (GtkCallback)adblock_deactivate_tabs, extension); + + i = 0; + while((view = midori_browser_get_nth_tab(browser, i++))) + adblock_deactivate_tabs (MIDORI_VIEW (view), browser, extension); adblock_destroy_db (); midori_web_settings_remove_style (settings, "adblock-blockcss"); -- 1.7.10