コード例 #1
0
ファイル: liferea_htmlview.c プロジェクト: matrixchan/liferea
static void
on_popup_social_bm_link_activate (GtkWidget *widget, gpointer user_data)
{	
	gchar *url = social_get_bookmark_url ((gchar *)user_data, "");
	(void)browser_tabs_add_new (url, url, TRUE);
	g_free (url);
}
コード例 #2
0
ファイル: webkit.c プロジェクト: rtennill/liferea
/**
 * A new window was requested. This is the case e.g. if the link
 * has target="_blank". In that case, we don't open the link in a new
 * tab, but do what the user requested as if it didn't have a target.
 */
static gboolean
liferea_webkit_new_window_requested (WebKitWebView *view,
				     WebKitWebFrame *frame,
				     WebKitNetworkRequest *request,
				     WebKitWebNavigationAction *navigation_action,
				     WebKitWebPolicyDecision *policy_decision)
{
	const gchar *uri = webkit_network_request_get_uri (request);

	if (webkit_web_navigation_action_get_button (navigation_action) == 2) {
		/* middle-click, let's open the link in a new tab */
		browser_tabs_add_new (uri, uri, FALSE);
	} else if (liferea_htmlview_handle_URL (g_object_get_data (G_OBJECT (view), "htmlview"), uri)) {
		/* The link is to be opened externally, let's do nothing here */
	} else {
		/* If the link is not to be opened in a new tab, nor externally,
		 * it was likely a normal click on a target="_blank" link.
		 * Let's open it in the current view to not disturb users */
		webkit_web_view_load_uri (view, uri);
	}

	/* We handled the request ourselves */
	webkit_web_policy_decision_ignore (policy_decision);
	return TRUE;
}
コード例 #3
0
ファイル: social.c プロジェクト: 814ckf0x/liferea
void
social_add_bookmark (const itemPtr item)
{
	gchar *link = item_make_link (item);
	gchar *url  = social_get_bookmark_url (link, item_get_title (item));
	(void)browser_tabs_add_new (url, social_get_bookmark_site(), TRUE);
	g_free (link);
	g_free (url);
}
コード例 #4
0
ファイル: webkit.c プロジェクト: asl97/liferea
/**
 *  e.g. after a click on javascript:openZoom()
 */
static WebKitWebView*
webkit_create_web_view (WebKitWebView *view, WebKitWebFrame *frame)
{
	LifereaHtmlView *htmlview;
	GtkWidget	*scrollpane;
	GtkWidget	*htmlwidget;

	htmlview = browser_tabs_add_new (NULL, NULL, TRUE);
	scrollpane = liferea_htmlview_get_widget (htmlview);
	htmlwidget = gtk_bin_get_child (GTK_BIN (scrollpane));
	return WEBKIT_WEB_VIEW (htmlwidget);
}
コード例 #5
0
ファイル: liferea_shell.c プロジェクト: Hawtom/liferea
static void
liferea_shell_add_html_tab (const gchar *file, const gchar *name)
{
	gchar *filepattern = g_strdup_printf (PACKAGE_DATA_DIR "/" PACKAGE "/doc/html/%s", file);
	gchar *filename = common_get_localized_filename (filepattern);
	gchar *fileuri = g_strdup_printf ("file://%s", filename);

	browser_tabs_add_new (fileuri, name, TRUE);

	g_free (filepattern);
	g_free (filename);
	g_free (fileuri);
}
コード例 #6
0
ファイル: webkit.c プロジェクト: rtennill/liferea
/**
 *  e.g. after a click on javascript:openZoom()
 */
static WebKitWebView*
webkit_create_web_view (WebKitWebView *view, WebKitWebFrame *frame)
{
	LifereaHtmlView *htmlview;
	GtkWidget	*container;
	GtkWidget	*htmlwidget;
	GList 		*children;

	htmlview = browser_tabs_add_new (NULL, NULL, TRUE);
	container = liferea_htmlview_get_widget (htmlview);

	/* Ugly lookup of the webview. LifereaHtmlView uses a GtkBox
	   with first a URL bar (sometimes invisble) and the HTML renderer
	   as 2nd child */
	children = gtk_container_get_children (GTK_CONTAINER (container));
	htmlwidget = gtk_bin_get_child (GTK_BIN (children->next->data));

	return WEBKIT_WEB_VIEW (htmlwidget);
}
コード例 #7
0
ファイル: item_list_view.c プロジェクト: dmitryvk/liferea
void
on_popup_launchitem_in_tab_selected (void) 
{
	itemPtr		item;
	gchar           *link;

	item = itemlist_get_selected ();
	if (item) {
		link = item_make_link (item);
		if (link) {
			browser_tabs_add_new (link, link, FALSE);
			g_free (link);
		} else
			ui_show_error_box (_("This item has no link specified!"));
			
		item_unload (item);
	} else {
		liferea_shell_set_important_status_bar (_("No item has been selected"));
	}
}
コード例 #8
0
ファイル: webkit.c プロジェクト: rtennill/liferea
/**
 * A link has been clicked
 *
 * When a link has been clicked the link management is dispatched to Liferea
 * core in order to manage the different filetypes, remote URLs.
 */
static gboolean
liferea_webkit_link_clicked (WebKitWebView *view,
			     WebKitWebFrame *frame,
			     WebKitNetworkRequest *request,
			     WebKitWebNavigationAction *navigation_action,
			     WebKitWebPolicyDecision *policy_decision)
{
	const gchar			*uri;
	WebKitWebNavigationReason	reason;
	gboolean			url_handled;

	g_return_val_if_fail (WEBKIT_IS_WEB_VIEW (view), FALSE);
	g_return_val_if_fail (WEBKIT_IS_NETWORK_REQUEST (request), FALSE);

	reason = webkit_web_navigation_action_get_reason (navigation_action);

	/* iframes in items return WEBKIT_WEB_NAVIGATION_REASON_OTHER
	   and shouldn't be handled as clicks                          */
	if (reason != WEBKIT_WEB_NAVIGATION_REASON_LINK_CLICKED)
		return FALSE;

	uri = webkit_network_request_get_uri (request);

	if (webkit_web_navigation_action_get_button (navigation_action) == 2) { /* middle click */
		browser_tabs_add_new (uri, uri, FALSE);
		webkit_web_policy_decision_ignore (policy_decision);
		return TRUE;
	}

	url_handled = liferea_htmlview_handle_URL (g_object_get_data (G_OBJECT (view), "htmlview"), uri);

	if (url_handled)
		webkit_web_policy_decision_ignore (policy_decision);

	return url_handled;
}
コード例 #9
0
ファイル: liferea_htmlview.c プロジェクト: matrixchan/liferea
static void
on_popup_open_link_in_tab_activate (GtkWidget *widget, gpointer user_data)
{
	browser_tabs_add_new ((gchar *)user_data, (gchar *)user_data, FALSE);
}