[evolution-rss] show browser links address in status bar
- From: Lucian Langa <lucilanga src gnome org>
- To: svn-commits-list gnome org
- Subject: [evolution-rss] show browser links address in status bar
- Date: Mon, 1 Jun 2009 08:17:19 -0400 (EDT)
commit 16f70af667c7a7e1a26ea56005ad9af0a7e94dd6
Author: Lucian Langa <lucilanga gnome org>
Date: Mon Jun 1 15:17:11 2009 +0300
show browser links address in status bar
---
TODO | 2 --
src/rss.c | 34 +++++++++++++++++++++++++++++++++-
2 files changed, 33 insertions(+), 3 deletions(-)
diff --git a/TODO b/TODO
index d9c1229..aa576ec 100644
--- a/TODO
+++ b/TODO
@@ -55,10 +55,8 @@
* store feed in an alternate file to serve images from
* migrate fetch_blocking -> fetch_unblocking
* grey stop button on complete load
- * display links from content in status bar
* grey out disabled folders (feeds)
* feed check runtime validation
* wrong send and receive count of articles after import
* handle 404 for images in comments
- * possibly prefer content:encoded (CDATA) over description on certiain atom feeds
* gtkhtml does not handle script properly
diff --git a/src/rss.c b/src/rss.c
index 250f336..0835160 100644
--- a/src/rss.c
+++ b/src/rss.c
@@ -1500,12 +1500,27 @@ rss_menu_items_free(EPopup *ep, GSList *items, void *data)
g_slist_free(items);
}
+#ifdef HAVE_WEBKIT
+gboolean
+webkit_over_link(WebKitWebView *web_view,
+ gchar *title,
+ gchar *uri,
+ gpointer user_data)
+{
+ if (uri) {
+ gchar *msg = g_strdup_printf("%s %s", _("Click to open"), uri);
+ taskbar_push_message(msg);
+ g_free(msg);
+ } else
+ taskbar_pop_message();
+
+}
+
gboolean
webkit_click (GtkEntry *entry,
GtkMenu *menu,
gpointer user_data)
{
- g_print("click\n");
GtkWidget *separator, *redo_menuitem;
redo_menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_REDO, NULL);
gtk_widget_set_sensitive (redo_menuitem, TRUE);
@@ -1516,9 +1531,24 @@ webkit_click (GtkEntry *entry,
gtk_menu_shell_insert (GTK_MENU_SHELL (menu), separator, 2);
return TRUE;
}
+#endif
#ifdef HAVE_GECKO
gboolean
+gecko_over_link(GtkMozEmbed *mozembed)
+{
+ gchar *link = gtk_moz_embed_get_link_message(mozembed);
+ if (link && strlen(link)) {
+ gchar *msg = g_strdup_printf("%s %s", _("Click to open"), link);
+ g_free(link);
+ taskbar_push_message(msg);
+ g_free(msg);
+ } else
+ taskbar_pop_message();
+ return FALSE;
+}
+
+gboolean
gecko_click(GtkMozEmbed *mozembed, gpointer dom_event, gpointer user_data)
{
gint button;
@@ -1585,6 +1615,7 @@ org_gnome_rss_browser (EMFormatHTML *efh, void *eb, EMFormatHTMLPObject *pobject
webkit_set_preferences();
gtk_container_add(GTK_CONTAINER(moz), GTK_WIDGET(rf->mozembed));
g_signal_connect (rf->mozembed, "populate-popup", G_CALLBACK (webkit_click), moz);
+ g_signal_connect (rf->mozembed, "hovering-over-link", G_CALLBACK (webkit_over_link), moz);
// gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(moz), GTK_WIDGET(rf->mozembed));
// gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(moz), GTK_SHADOW_ETCHED_OUT);
}
@@ -1599,6 +1630,7 @@ org_gnome_rss_browser (EMFormatHTML *efh, void *eb, EMFormatHTMLPObject *pobject
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(moz), GTK_WIDGET(rf->mozembed));
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(moz), GTK_SHADOW_ETCHED_OUT);
g_signal_connect (rf->mozembed, "dom_mouse_click", G_CALLBACK(gecko_click), moz);
+ g_signal_connect (rf->mozembed, "link_message", G_CALLBACK(gecko_over_link), moz);
}
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]