-gboolean
-menu_web_view(WebKitWebView *web_view, WebKitContextMenu *menu, GdkEvent *ev,
- WebKitHitTestResult *ht, gpointer data)
-{
- struct Client *c = (struct Client *)data;
- GSimpleAction *action = NULL;
- WebKitContextMenuItem *mi = NULL;
- const gchar *uri = NULL;
-
- (void)ev;
-
- if (webkit_hit_test_result_context_is_link(ht))
- uri = webkit_hit_test_result_get_link_uri(ht);
- else if (webkit_hit_test_result_context_is_image(ht))
- uri = webkit_hit_test_result_get_image_uri(ht);
- else if (webkit_hit_test_result_context_is_media(ht))
- uri = webkit_hit_test_result_get_media_uri(ht);
-
- if (uri != NULL)
- {
- webkit_context_menu_append(menu, webkit_context_menu_item_new_separator());
-
- if (c->external_handler_uri != NULL)
- g_free(c->external_handler_uri);
- c->external_handler_uri = g_strdup(uri);
- action = g_simple_action_new("external_handler", NULL);
- g_signal_connect(G_OBJECT(action), "activate",
- G_CALLBACK(external_handler_run), data);
- mi = webkit_context_menu_item_new_from_gaction(G_ACTION(action),
- "Open with external handler",
- NULL);
- webkit_context_menu_append(menu, mi);
- g_object_unref(action);
- }
-
- /* FALSE = Show the menu. (TRUE = Don't ever show it.) */
- return FALSE;
-}
-