static void copy_selection_callback (GtkAction *action, gpointer data) { if (webkit_web_view_can_copy_clipboard (WEBKIT_WEB_VIEW (view))) { webkit_web_view_copy_clipboard (WEBKIT_WEB_VIEW (view)); } }
static void impl_webkit_copy_to_clipboard( GncHtml* self ) { GncHtmlWebkitPrivate* priv; g_return_if_fail( self != NULL ); g_return_if_fail( GNC_IS_HTML_WEBKIT(self) ); priv = GNC_HTML_WEBKIT_GET_PRIVATE(self); if ( webkit_web_view_can_copy_clipboard( priv->web_view ) ) { webkit_web_view_copy_clipboard( priv->web_view ); } }
/** * Return whether text is selected */ static gboolean liferea_webkit_has_selection (GtkWidget *scrollpane) { WebKitWebView *view; view = WEBKIT_WEB_VIEW (gtk_bin_get_child (GTK_BIN (scrollpane))); /* Currently (libwebkit-1.0 1.2.0) this doesn't work: return webkit_web_view_has_selection (view); So we use *_can_copy_clipboard() as a workaround. */ return webkit_web_view_can_copy_clipboard (view); }
static gboolean view_popup_menu (GtkWidget *widget, GdkEventButton *event) { GtkWidget *menu; const gchar *path; if (webkit_web_view_can_copy_clipboard (WEBKIT_WEB_VIEW (view))) path = "/help-browser-copy-popup"; else path = "/help-browser-popup"; menu = gtk_ui_manager_get_widget (ui_manager, path); gtk_menu_set_screen (GTK_MENU (menu), gtk_widget_get_screen (widget)); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, event ? event->button : 0, event ? event->time : gtk_get_current_event_time ()); return TRUE; }
static gboolean button_press_event_cb (GtkWidget *widget, GdkEventButton *event, WebKitWebView *view) { if (event && event->button != 3) return FALSE; // GtkMenu API is horrible for non-persistant menus. Make it persistant. static GtkWidget *menu = 0; if (menu) gtk_widget_destroy (menu); menu = gtk_menu_new(); // add a couple of items (based on GtkTextView) GtkWidget *item; item = gtk_image_menu_item_new_from_stock (GTK_STOCK_COPY, NULL); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); if (webkit_web_view_can_copy_clipboard (view)) g_signal_connect (item, "activate", G_CALLBACK (copy_activate_cb), widget); else gtk_widget_set_sensitive (item, FALSE); item = gtk_separator_menu_item_new(); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_image_menu_item_new_from_stock (GTK_STOCK_SELECT_ALL, NULL); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); g_signal_connect (item, "activate", G_CALLBACK (select_all_activate_cb), widget); int button, event_time; if (event) { button = event->button; event_time = event->time; } else { button = 0; event_time = gtk_get_current_event_time(); } gtk_menu_attach_to_widget (GTK_MENU (menu), widget, NULL); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, button, event_time); gtk_widget_show_all (menu); return TRUE; }
bool wxWebViewWebKit::CanCopy() const { return webkit_web_view_can_copy_clipboard(WEBKIT_WEB_VIEW(web_view)); }
bool wxWebViewWebKit::CanCopy() const { return webkit_web_view_can_copy_clipboard(m_web_view); }
void empathy_webkit_context_menu_for_event (WebKitWebView *view, GdkEventButton *event, EmpathyWebKitMenuFlags flags) { WebKitHitTestResult *hit_test_result; WebKitHitTestResultContext context; GtkWidget *menu; GtkWidget *item; hit_test_result = webkit_web_view_get_hit_test_result (view, event); g_object_get (G_OBJECT (hit_test_result), "context", &context, NULL); /* The menu */ menu = empathy_context_menu_new (GTK_WIDGET (view)); /* Select all item */ item = gtk_image_menu_item_new_from_stock (GTK_STOCK_SELECT_ALL, NULL); gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item); g_signal_connect_swapped (item, "activate", G_CALLBACK (webkit_web_view_select_all), view); /* Copy menu item */ if (webkit_web_view_can_copy_clipboard (view)) { item = gtk_image_menu_item_new_from_stock (GTK_STOCK_COPY, NULL); gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item); g_signal_connect_swapped (item, "activate", G_CALLBACK (webkit_web_view_copy_clipboard), view); } /* Clear menu item */ if (flags & EMPATHY_WEBKIT_MENU_CLEAR) { item = gtk_separator_menu_item_new (); gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item); item = gtk_image_menu_item_new_from_stock (GTK_STOCK_CLEAR, NULL); gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item); g_signal_connect_swapped (item, "activate", G_CALLBACK (empathy_chat_view_clear), view); } /* We will only add the following menu items if we are * right-clicking a link */ if (context & WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK) { /* Separator */ item = gtk_separator_menu_item_new (); gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item); /* Copy Link Address menu item */ item = gtk_menu_item_new_with_mnemonic (_("_Copy Link Address")); g_signal_connect (item, "activate", G_CALLBACK (empathy_webkit_copy_address_cb), hit_test_result); gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item); /* Open Link menu item */ item = gtk_menu_item_new_with_mnemonic (_("_Open Link")); g_signal_connect (item, "activate", G_CALLBACK (empathy_webkit_open_address_cb), hit_test_result); gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item); } g_signal_connect (GTK_MENU_SHELL (menu), "selection-done", G_CALLBACK (empathy_webkit_context_menu_selection_done_cb), hit_test_result); /* Display the menu */ gtk_widget_show_all (menu); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, event->button, event->time); }