[Xfce4-commits] <midori:master> Handle empty tabs due to download links with a target
Christian Dywan
noreply at xfce.org
Mon Apr 16 20:02:08 CEST 2012
Updating branch refs/heads/master
to 7e04c76bce9bafba6833426def5f99c0c851053c (commit)
from 0b8a080695ea839352f7a040d6caf65a10af4909 (commit)
commit 7e04c76bce9bafba6833426def5f99c0c851053c
Author: Martin Natano <natano at natano.net>
Date: Mon Apr 16 19:55:09 2012 +0200
Handle empty tabs due to download links with a target
Fixes: https://bugs.launchpad.net/midori/+bug/973646
midori/midori-browser.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index a409663..aae2d11 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -1454,10 +1454,24 @@ midori_browser_download_prepare_destination_uri (WebKitDownload* download,
}
static gboolean
+midori_browser_remove_tab_idle (gpointer view)
+{
+ MidoriBrowser* browser;
+
+ g_return_val_if_fail (GTK_IS_WIDGET (view), FALSE);
+ browser = midori_browser_get_for_widget (GTK_WIDGET (view));
+ midori_browser_remove_tab (browser, GTK_WIDGET (view));
+ return G_SOURCE_REMOVE;
+}
+
+static gboolean
midori_view_download_requested_cb (GtkWidget* view,
WebKitDownload* download,
MidoriBrowser* browser)
{
+ GtkWidget* web_view;
+ WebKitWebFrame* web_frame;
+ WebKitWebDataSource* datasource;
gboolean handled;
g_return_val_if_fail (MIDORI_IS_VIEW (view), FALSE);
@@ -1514,6 +1528,13 @@ midori_view_download_requested_cb (GtkWidget* view,
g_free (destination_uri);
}
}
+
+ /* Close empty tabs due to download links with a target */
+ web_view = midori_view_get_web_view (MIDORI_VIEW (view));
+ web_frame = webkit_web_view_get_main_frame (WEBKIT_WEB_VIEW (web_view));
+ datasource = webkit_web_frame_get_data_source (web_frame);
+ if (midori_view_is_blank (MIDORI_VIEW (view)) && webkit_web_data_source_get_data (datasource) == NULL)
+ g_idle_add (midori_browser_remove_tab_idle, view);
return handled;
}
More information about the Xfce4-commits
mailing list