Beispiel #1
0
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));
    }
}
Beispiel #2
0
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 );
    }
}
Beispiel #3
0
/**
 * 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);
}
Beispiel #4
0
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;
}
Beispiel #5
0
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);
}