summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun McCance <shaunm@gnome.org>2010-05-21 13:15:44 -0500
committerShaun McCance <shaunm@gnome.org>2010-05-21 13:16:20 -0500
commit7df7ae57b7a88ec9b37c603d167c6af762d4efcb (patch)
tree090822e0c6dc77acc376b121e2e48216456f6a59
parentc739ac1584b1f1299b765b96a6174e6bb9b3e7e5 (diff)
downloadyelp-7df7ae57b7a88ec9b37c603d167c6af762d4efcb.tar.gz
[libyelp/yelp-view] Saving and sending video on right click
-rw-r--r--libyelp/yelp-view.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/libyelp/yelp-view.c b/libyelp/yelp-view.c
index 28be6179..b237c6ce 100644
--- a/libyelp/yelp-view.c
+++ b/libyelp/yelp-view.c
@@ -831,9 +831,14 @@ view_populate_popup (YelpView *view,
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
}
- if (context & WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE) {
+ if ((context & WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE) ||
+ (context & WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA)) {
+ /* This doesn't currently work for video with automatic controls,
+ * because WebKit puts the hit test on the div with the controls.
+ */
+ gboolean image = context & WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE;
gchar *uri;
- g_object_get (result, "image-uri", &uri, NULL);
+ g_object_get (result, image ? "image-uri" : "media-uri", &uri, NULL);
g_free (priv->popup_image_uri);
if (g_str_has_prefix (uri, BOGUS_URI)) {
priv->popup_image_uri = yelp_uri_locate_file_uri (priv->uri, uri + BOGUS_URI_LEN);
@@ -846,13 +851,19 @@ view_populate_popup (YelpView *view,
item = gtk_separator_menu_item_new ();
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
- item = gtk_menu_item_new_with_mnemonic (_("_Save Image As..."));
+ if (image)
+ item = gtk_menu_item_new_with_mnemonic (_("_Save Image As..."));
+ else
+ item = gtk_menu_item_new_with_mnemonic (_("_Save Video As..."));
g_signal_connect (item, "activate",
G_CALLBACK (popup_save_image), view);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
if (nautilus_sendto) {
- item = gtk_menu_item_new_with_mnemonic (_("S_end Image To..."));
+ if (image)
+ item = gtk_menu_item_new_with_mnemonic (_("S_end Image To..."));
+ else
+ item = gtk_menu_item_new_with_mnemonic (_("S_end Video To..."));
g_signal_connect (item, "activate",
G_CALLBACK (popup_send_image), view);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
@@ -1327,7 +1338,7 @@ document_callback (YelpDocument *document,
GParamSpec *spec;
real_id = yelp_document_get_page_id (document, priv->page_id);
- if (priv->page_id && g_str_equal (real_id, priv->page_id)) {
+ if (priv->page_id && real_id && g_str_equal (real_id, priv->page_id)) {
g_free (real_id);
}
else {