436
436
webview.expand = true;
437
437
webview.transparent = true;
438
438
webview.hovering_over_link.connect (on_hovering_over_link);
439
webview.context_menu.connect(() => { return true; }); // Suppress default context menu.
439
webview.context_menu.connect (context_menu);
440
440
webview.resource_request_starting.connect (on_resource_request_starting);
441
441
webview.navigation_policy_decision_requested.connect (on_navigation_policy_decision_requested);
442
442
webview.new_window_policy_decision_requested.connect (on_navigation_policy_decision_requested);
560
560
copy_item.activate.connect (() => {
561
561
var clipboard = Gtk.Clipboard.get_for_display (copy_item.get_display (), Gdk.SELECTION_CLIPBOARD);
562
clipboard.set_text (GLib.Uri.unescape_string (value_label.get_current_uri ()).replace ("mailto:", ""), -1);
562
clipboard.set_text (GLib.Uri.unescape_string (value_label.get_current_uri ()).replace (Geary.ComposedEmail.MAILTO_SCHEME, ""), -1);
565
565
menu.add (open_item);
1122
1122
star_image.icon_name = "non-starred-symbolic";
1126
[CCode (instance_pos = -1)]
1127
private bool context_menu (Gtk.Widget default_menu, WebKit.HitTestResult hit_test_result, bool triggered_with_keyboard) {
1128
var menu = new Gtk.Menu ();
1129
menu.attach_widget = webview;
1130
if (webview.can_copy_clipboard ()) {
1131
// Add a menu item for copying the current selection.
1132
var item = new Gtk.MenuItem.with_mnemonic (_("_Copy"));
1134
item.activate.connect (() => webview.copy_clipboard ());
1137
if (WebKit.HitTestResultContext.LINK in hit_test_result.context) {
1138
if (hit_test_result.link_uri.has_prefix (Geary.ComposedEmail.MAILTO_SCHEME)) {
1139
// Add a menu item for copying the address.
1140
var item = new Gtk.MenuItem.with_mnemonic (_("Copy _Email Address"));
1142
item.activate.connect (() => {
1143
var clipboard = Gtk.Clipboard.get (Gdk.SELECTION_CLIPBOARD);
1144
clipboard.set_text (hit_test_result.link_uri.substring (Geary.ComposedEmail.MAILTO_SCHEME.length, -1), -1);
1148
// Add a menu item for copying the link.
1149
var item = new Gtk.MenuItem.with_mnemonic (_("Copy _Link"));
1151
item.activate.connect (() => {
1152
var clipboard = Gtk.Clipboard.get (Gdk.SELECTION_CLIPBOARD);
1153
clipboard.set_text (hit_test_result.link_uri, -1);
1160
var select_all_item = new Gtk.MenuItem.with_mnemonic (_("Select _All"));
1161
select_all_item.activate.connect (() => webview.select_all ());
1162
menu.append (select_all_item);
1165
if (Args.inspector) {
1166
var inspect_item = new Gtk.MenuItem.with_mnemonic (_("_Inspect"));
1167
inspect_item.activate.connect (() => {webview.web_inspector.show ();});
1168
menu.append (inspect_item);
1172
menu.popup (null, null, null, 0, Gtk.get_current_event_time ());