Пример #1
0
/**
 * Copy selected text to the clipboard
 */
static void
liferea_webkit_copy_selection (GtkWidget *scrollpane)
{
	WebKitWebView *view;
	view = WEBKIT_WEB_VIEW (gtk_bin_get_child (GTK_BIN (scrollpane)));
	webkit_web_view_copy_clipboard (view);
}
Пример #2
0
/* ghtml_copy */
void ghtml_copy(GtkWidget * widget)
{
	GHtml * ghtml;

	ghtml = g_object_get_data(G_OBJECT(widget), "ghtml");
	webkit_web_view_copy_clipboard(WEBKIT_WEB_VIEW(ghtml->view));
}
Пример #3
0
static void load_status_cb(WebKitWebView* webView, GParamSpec* spec, gpointer data)
{
    CopyAndPasteFixture* fixture = (CopyAndPasteFixture*)data;
    WebKitLoadStatus status = webkit_web_view_get_load_status(webView);
    if (status != WEBKIT_LOAD_FINISHED)
        return;

    GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
    gtk_clipboard_clear(clipboard);

    webkit_web_view_copy_clipboard(webView);

    gchar* text = gtk_clipboard_wait_for_text(clipboard);
    g_assert(text || !fixture->info->expectedContent);
    g_assert(!text || !strcmp(text, fixture->info->expectedContent));
    g_free(text);

    // Verify that the markup starts with the proper content-type meta tag prefix.
    GtkSelectionData* selectionData = gtk_clipboard_wait_for_contents(clipboard, gdk_atom_intern("text/html", FALSE));
    if (selectionData) {
        static const char* markupPrefix = "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">";
        char* markup = g_strndup((const char*) gtk_selection_data_get_data(selectionData),
            gtk_selection_data_get_length(selectionData));
        g_assert(strlen(markupPrefix) <= strlen(markup));
        g_assert(!strncmp(markupPrefix, markup, strlen(markupPrefix)));
        g_free(markup);
    }

    g_assert(!gtk_clipboard_wait_is_uris_available(clipboard));
    g_assert(!gtk_clipboard_wait_is_image_available(clipboard));

    g_main_loop_quit(fixture->loop);
}
Пример #4
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));
    }
}
Пример #5
0
void wk_html_copy_selection(WkHtml *html)
{
#ifdef USE_WEBKIT2
	webkit_web_view_execute_editing_command(WEBKIT_WEB_VIEW(html),
						WEBKIT_EDITING_COMMAND_COPY);
#else
	if (webkit_web_view_has_selection(WEBKIT_WEB_VIEW(html)))
		webkit_web_view_copy_clipboard(WEBKIT_WEB_VIEW(html));
#endif
}
Пример #6
0
void
selection_changed_cb(WebKitWebView *webkitwebview, gpointer ud) {
    (void)ud;
    gchar *tmp;

    webkit_web_view_copy_clipboard(webkitwebview);
    tmp = gtk_clipboard_wait_for_text(gtk_clipboard_get (GDK_SELECTION_CLIPBOARD));
    send_event(SELECTION_CHANGED, NULL, TYPE_STR, tmp ? tmp : "", NULL);
    g_free(tmp);
}
Пример #7
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 );
    }
}
Пример #8
0
/* Edit->Copy */
void
action_copy(GtkAction *action, I7Document *document)
{
	GtkWidget *widget = gtk_window_get_focus(GTK_WINDOW(document));

	/* What actually happens depends on the type of widget that is focused */
	if(WEBKIT_IS_WEB_VIEW(widget))
		webkit_web_view_copy_clipboard(WEBKIT_WEB_VIEW(widget));
	else if((GTK_IS_LABEL(widget) && gtk_label_get_selectable(GTK_LABEL(widget)))
		|| GTK_IS_ENTRY(widget) || GTK_IS_TEXT_VIEW(widget))
		g_signal_emit_by_name(widget, "copy-clipboard", NULL);
	else /* If we don't know how to copy from it, just copy from the source */
		g_signal_emit_by_name(i7_document_get_default_view(document), "copy-clipboard", NULL);
}
Пример #9
0
void WindowCheckKeyterms::copy_clipboard()
{
  if (gtk_widget_has_focus (webview_terms)) {
    // Copy text to the clipboard.
    webkit_web_view_copy_clipboard (WEBKIT_WEB_VIEW (webview_terms));

    // Add the selected text to the renderings.
    GtkClipboard *clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
    char * text = gtk_clipboard_wait_for_text (clipboard);
    if (text) {
      add_to_renderings (text, false);
      free (text); 
    }
  }
}
Пример #10
0
gboolean command_yank(const Arg *arg, char buf)
{
    static char *tmpl = "Yanked: %s";

    if (arg->i == COMMAND_YANK_SELECTION) {
        char *text = NULL;
        /* copy current selection to clipboard */
        webkit_web_view_copy_clipboard(vb.gui.webview);
        text = gtk_clipboard_wait_for_text(PRIMARY_CLIPBOARD());
        if (!text) {
            text = gtk_clipboard_wait_for_text(SECONDARY_CLIPBOARD());
        }
        if (text) {
            /* put the text into the yank buffer */
            vb_register_add(buf, text);
            vb_echo(VB_MSG_NORMAL, false, tmpl, text);
            g_free(text);

            return true;
        }

        return false;
    }

    Arg a = {VB_CLIPBOARD_PRIMARY|VB_CLIPBOARD_SECONDARY};
    if (arg->i == COMMAND_YANK_URI) {
        /* yank current uri */
        a.s = vb.state.uri;
    } else {
        /* use current arg.s as new clipboard content */
        a.s = arg->s;
    }
    if (a.s) {
        /* put the text into the yank buffer */
        vb_set_clipboard(&a);
        vb_register_add(buf, a.s);
        vb_echo(VB_MSG_NORMAL, false, tmpl, a.s);

        return true;
    }

    return false;
}
Пример #11
0
static gboolean button_release_handler(GtkWidget *widget, GdkEventButton *event)
{
	if (event->type == GDK_BUTTON_RELEASE && db_click) {
		XI_message((" button 1 = %s", "double click!\n"));

#ifdef USE_WEBKIT2
		webkit_web_view_execute_editing_command(WEBKIT_WEB_VIEW(widget),
							WEBKIT_EDITING_COMMAND_COPY);
#else
		if (webkit_web_view_has_selection(WEBKIT_WEB_VIEW(widget))) {
			webkit_web_view_copy_clipboard(WEBKIT_WEB_VIEW(widget));
		}
#endif
		GtkClipboard *clipboard = gtk_widget_get_clipboard(widget, GDK_SELECTION_CLIPBOARD);
		gtk_clipboard_request_text(clipboard, gui_get_clipboard_text_for_lookup, NULL);
	}

	return FALSE;
}
Пример #12
0
static void load_status_cb(WebKitWebView* webView, GParamSpec* spec, gpointer data)
{
    CopyAndPasteFixture* fixture = (CopyAndPasteFixture*)data;
    WebKitLoadStatus status = webkit_web_view_get_load_status(webView);
    if (status != WEBKIT_LOAD_FINISHED)
        return;

    GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
    gtk_clipboard_clear(clipboard);

    webkit_web_view_copy_clipboard(webView);

    gchar* text = gtk_clipboard_wait_for_text(clipboard);
    g_assert(text || !fixture->info->expectedContent);
    g_assert(!text || !strcmp(text, fixture->info->expectedContent));
    g_free(text);

    g_assert(!gtk_clipboard_wait_is_uris_available(clipboard));
    g_assert(!gtk_clipboard_wait_is_image_available(clipboard));

    g_main_loop_quit(fixture->loop);
}
Пример #13
0
void wxWebViewWebKit::Copy()
{
    webkit_web_view_copy_clipboard(WEBKIT_WEB_VIEW(web_view));
}
Пример #14
0
void WebkitBrowser::copy()
{
  if (focused()) {
    webkit_web_view_copy_clipboard (WEBKIT_WEB_VIEW (webview));
  }
}
Пример #15
0
void wxWebViewWebKit::Copy()
{
    webkit_web_view_copy_clipboard(m_web_view);
}
Пример #16
0
gboolean 
visual_caret(GdkEventKey *e)
{
    static gint visual = false;

    guint defaultMask = visual ? GDK_SHIFT_MASK : 0;

    guint keyval[3] = { 0, 0, 0 };
    guint state[3] = { defaultMask, defaultMask, defaultMask };
    if (DIGIT(e) && (e->keyval != GDK_KEY_0 || dwb.state.nummod != -1)) {
        dwb_set_nummod(e);
        return true;
    }

    switch (e->keyval)
    {
        case GDK_KEY_j: 
            keyval[0] = GDK_KEY_Down;
            break;
        case GDK_KEY_k: 
            keyval[0] = GDK_KEY_Up;
            break;
        case GDK_KEY_h: 
            keyval[0] = GDK_KEY_Left;
            break;
        case GDK_KEY_l: 
            keyval[0] = GDK_KEY_Right;
            break;
        case GDK_KEY_w: 
            keyval[0] = keyval[1] = GDK_KEY_Right;
            keyval[2] = GDK_KEY_Left;
            state[0] = state[1] = state[2] = GDK_CONTROL_MASK | defaultMask;
            break;
        case GDK_KEY_b: 
            keyval[0] = GDK_KEY_Left;
            state[0] = GDK_CONTROL_MASK | defaultMask;
            break;
        case GDK_KEY_e: 
            keyval[0] = GDK_KEY_Right;
            state[0] = GDK_CONTROL_MASK | defaultMask;
            break;
        case GDK_KEY_asciicircum:
        case GDK_KEY_0: 
            keyval[0] = GDK_KEY_Home;
            break;
        case GDK_KEY_dollar: 
            keyval[0] = GDK_KEY_End;
            break;
        case GDK_KEY_space: 
            if (visual)
            {
                visual = false;
                dwb_set_normal_message(dwb.state.fview, false, "-- CARET --");
            }
            else 
            {
                visual = true;
                dwb_set_normal_message(dwb.state.fview, false, "-- VISUAL --");
            }
            return true;
        case GDK_KEY_v: 
            visual = true;
            dwb_set_normal_message(dwb.state.fview, false, "-- VISUAL --");
            return true;
        case GDK_KEY_y: 
            webkit_web_view_copy_clipboard(CURRENT_WEBVIEW());
            dwb_set_normal_message(dwb.state.fview, true, "Yanked to clipboard");
            dwb_change_mode(NORMAL_MODE, false); 
            visual = false;
            return true;
        case GDK_KEY_Escape: 
            if (visual)
            {
                dwb_set_normal_message(dwb.state.fview, false, "-- CARET --");
                visual = false;
            }
            else 
            {
                WebKitWebSettings *settings = webkit_web_view_get_settings(CURRENT_WEBVIEW());
                g_object_set(settings, "enable-caret-browsing", FALSE, NULL);
                dwb_change_mode(NORMAL_MODE, true);
            }
            break;
        default :return false;
    }
    for (int i=0; i<NUMMOD; i++) {
        dispatch_event(keyval, state);
    }
    dwb.state.nummod = -1;
    return true;
}
Пример #17
0
void document_webkit_copy(Documentable *doc)
{
  g_return_if_fail(doc);
  Document_WebkitDetails *docdet = DOCUMENT_WEBKIT_GET_PRIVATE(doc);
  webkit_web_view_copy_clipboard (WEBKIT_WEB_VIEW(docdet->help_view));
}
Пример #18
0
static void copy_activate_cb (GtkMenuItem *item, WebKitWebView *view)
{ webkit_web_view_copy_clipboard (view); }
Пример #19
0
static int gtkWebBrowserSetCopyAttrib(Ihandle* ih, const char* value)
{
  webkit_web_view_copy_clipboard((WebKitWebView*)ih->handle);
  (void)value;
  return 0;
}