Esempio n. 1
0
/* FIXME: This is necessary because WebKit caches the Problems.html page, even
though Page Caching is turned off! So unless it is reloaded right after it is
loaded, the compiler's newly written version is not picked up. Shame there is no
webkit_web_view_load_uri_bypass_cache(). Presumably this is fixed in WebKit2. */
static void
on_load_status_finished_reload(WebKitWebView *html, GParamSpec *pspec)
{
    WebKitLoadStatus status = webkit_web_view_get_load_status(html);
    if(status != WEBKIT_LOAD_FINISHED && status != WEBKIT_LOAD_FAILED)
        return;
    webkit_web_view_reload_bypass_cache(html);
    g_signal_handlers_disconnect_by_func(html, on_load_status_finished_reload, NULL);
}
Esempio n. 2
0
static VALUE
WebView_reload_bypass_cache(VALUE self)
{
  WebKitWebView *_self = ((WebKitWebView*)RVAL2GOBJ(self));

#line 291 "/home/ngl/Progetti/gtk-webkit-ruby/ext/webkit/webkit.cr"
  webkit_web_view_reload_bypass_cache(_self);
 
  return Qnil;
}
Esempio n. 3
0
static VALUE
WebView_reload_bypass_cache(VALUE self)
{
  WebKitWebView *_self = ((WebKitWebView*)RVAL2GOBJ(self));

#line 132 "/home/geoff/Projects/gtk-webkit-ruby/ext/webkit/webkit.cr"
  webkit_web_view_reload_bypass_cache(_self);
 
  return Qnil;
}
Esempio n. 4
0
void wxWebViewWebKit::Reload(wxWebViewReloadFlags flags)
{
    if (flags & wxWEBVIEW_RELOAD_NO_CACHE)
    {
        webkit_web_view_reload_bypass_cache(m_web_view);
    }
    else
    {
        webkit_web_view_reload(m_web_view);
    }
}
Esempio n. 5
0
void ghtml_reload(GtkWidget * widget)
{
	GHtml * ghtml;

	ghtml = g_object_get_data(G_OBJECT(widget), "ghtml");
#if WEBKIT_CHECK_VERSION(1, 0, 3)
	webkit_web_view_reload_bypass_cache(WEBKIT_WEB_VIEW(ghtml->view));
#else
	webkit_web_view_reload(WEBKIT_WEB_VIEW(ghtml->view));
#endif
}
Esempio n. 6
0
static VbResult normal_navigate(Client *c, const NormalCmdInfo *info)
{
    int count;
    WebKitBackForwardList *list;
    WebKitBackForwardListItem *item;

    WebKitWebView *view = c->webview;
    switch (info->key) {
        case CTRL('I'): /* fall through */
        case CTRL('O'):
            count = info->count ? info->count : 1;
            if (info->key == CTRL('O')) {
                if (webkit_web_view_can_go_back(view)) {
                    list = webkit_web_view_get_back_forward_list(view);
                    item = webkit_back_forward_list_get_nth_item(list, -1 * count);
                    webkit_web_view_go_to_back_forward_list_item(view, item);
                }
            } else {
                if (webkit_web_view_can_go_forward(view)) {
                    list = webkit_web_view_get_back_forward_list(view);
                    item = webkit_back_forward_list_get_nth_item(list, count);
                    webkit_web_view_go_to_back_forward_list_item(view, item);
                }
            }
            break;

        case 'r':
            webkit_web_view_reload(view);
            break;

        case 'R':
            webkit_web_view_reload_bypass_cache(view);
            break;

        case CTRL('C'):
            webkit_web_view_stop_loading(view);
            break;
    }

    return RESULT_COMPLETE;
}
Esempio n. 7
0
void reload_browser(int signum) {
  webkit_web_view_reload_bypass_cache(web_view);
}
Esempio n. 8
0
gboolean
key_web_view(GtkWidget *widget, GdkEvent *event, gpointer data)
{
    struct Client *c = (struct Client *)data;
    gdouble dx, dy;
    gchar *f;
    gfloat z;
    WebKitWebContext *wc = webkit_web_view_get_context(WEBKIT_WEB_VIEW(c->web_view));

    if (event->type == GDK_KEY_PRESS)
    {
        if (((GdkEventKey *)event)->state & GDK_MOD1_MASK)
        {
            switch (((GdkEventKey *)event)->keyval)
            {
                case GDK_KEY_q:  /* close window (left hand) */
                    gtk_widget_destroy(c->win);
                    return TRUE;
                case GDK_KEY_w:  /* home (left hand) */
                    f = ensure_uri_scheme(home_uri);
                    webkit_web_view_load_uri(WEBKIT_WEB_VIEW(c->web_view), f);
                    g_free(f);
                    return TRUE;
                case GDK_KEY_e:  /* new tab (left hand) */
                    f = ensure_uri_scheme(home_uri);
                    client_new(f);
                    g_free(f);
                    return TRUE;
                case GDK_KEY_r:  /* reload (left hand) */
                    webkit_web_view_reload_bypass_cache(WEBKIT_WEB_VIEW(
                                                        c->web_view));
                    return TRUE;
                case GDK_KEY_d:  /* download manager (left hand) */
                    gtk_widget_show_all(dm.win);
                    return TRUE;
                case GDK_KEY_2:  /* search forward (left hand) */
                case GDK_KEY_n:  /* search forward (maybe both hands) */
                    search(c, 1);
                    return TRUE;
                case GDK_KEY_3:  /* search backward (left hand) */
                    search(c, -1);
                    return TRUE;
                case GDK_KEY_l:  /* location (BOTH hands) */
                    gtk_widget_grab_focus(c->location);
                    return TRUE;
                case GDK_KEY_k:  /* initiate search (BOTH hands) */
                    gtk_widget_grab_focus(c->location);
                    gtk_entry_set_text(GTK_ENTRY(c->location), "/");
                    gtk_editable_set_position(GTK_EDITABLE(c->location), -1);
                    return TRUE;
                case GDK_KEY_c:  /* reload trusted certs (left hand) */
                    trust_user_certs(wc);
                    return TRUE;
            }
        }
        /* navigate backward (left hand) */
        else if (((GdkEventKey *)event)->keyval == GDK_KEY_F2)
        {
            webkit_web_view_go_back(WEBKIT_WEB_VIEW(c->web_view));
            return TRUE;
        }
        /* navigate forward (left hand) */
        else if (((GdkEventKey *)event)->keyval == GDK_KEY_F3)
        {
            webkit_web_view_go_forward(WEBKIT_WEB_VIEW(c->web_view));
            return TRUE;
        }
        else if (((GdkEventKey *)event)->keyval == GDK_KEY_Escape)
        {
            webkit_web_view_stop_loading(WEBKIT_WEB_VIEW(c->web_view));
            gtk_level_bar_set_value(GTK_LEVEL_BAR(c->progress), 0);
        }
    }
    else if (event->type == GDK_BUTTON_PRESS)
    {
        switch (((GdkEventButton *)event)->button)
        {
            case 2:
                if (c->hover_uri != NULL)
                {
                    client_new(c->hover_uri);
                    return TRUE;
                }
                break;
            case 8:
                webkit_web_view_go_back(WEBKIT_WEB_VIEW(c->web_view));
                return TRUE;
            case 9:
                webkit_web_view_go_forward(WEBKIT_WEB_VIEW(c->web_view));
                return TRUE;
        }
    }
    else if (event->type == GDK_SCROLL)
    {
        if (((GdkEventScroll *)event)->state & GDK_MOD1_MASK ||
            ((GdkEventScroll *)event)->state & GDK_CONTROL_MASK)
        {
            gdk_event_get_scroll_deltas(event, &dx, &dy);
            z = webkit_web_view_get_zoom_level(WEBKIT_WEB_VIEW(c->web_view));
            z += -dy * 0.1;
            z = dx != 0 ? global_zoom : z;
            webkit_web_view_set_zoom_level(WEBKIT_WEB_VIEW(c->web_view), z);
            return TRUE;
        }
    }

    return FALSE;
}
Esempio n. 9
0
gboolean
key_location(GtkWidget *widget, GdkEvent *event, gpointer data)
{
    struct Client *c = (struct Client *)data;
    const gchar *t;
    gchar *f;
    WebKitWebContext *wc = webkit_web_view_get_context(WEBKIT_WEB_VIEW(c->web_view));

    if (event->type == GDK_KEY_PRESS)
    {
        if (((GdkEventKey *)event)->state & GDK_MOD1_MASK)
        {
            switch (((GdkEventKey *)event)->keyval)
            {
                case GDK_KEY_q:  /* close window (left hand) */
                    gtk_widget_destroy(c->win);
                    return TRUE;
                case GDK_KEY_d:  /* download manager (left hand) */
                    gtk_widget_show_all(dm.win);
                    return TRUE;
                case GDK_KEY_r:  /* reload (left hand) */
                    webkit_web_view_reload_bypass_cache(WEBKIT_WEB_VIEW(
                                                        c->web_view));
                    return TRUE;
                case GDK_KEY_k:  /* initiate search (BOTH hands) */
                    gtk_entry_set_text(GTK_ENTRY(c->location), "/");
                    gtk_editable_set_position(GTK_EDITABLE(c->location), -1);
                    return TRUE;
                case GDK_KEY_c:  /* reload trusted certs (left hand) */
                    trust_user_certs(wc);
                    return TRUE;
            }
        }
        else
        {
            switch (((GdkEventKey *)event)->keyval)
            {
                case GDK_KEY_KP_Enter:
                case GDK_KEY_Return:
                    gtk_widget_grab_focus(c->web_view);
                    t = gtk_entry_get_text(GTK_ENTRY(c->location));
                    if (t != NULL && t[0] == '/')
                    {
                        if (search_text != NULL)
                            g_free(search_text);
                        search_text = g_strdup(t + 1);  /* XXX whacky */
                        search(c, 0);
                    }
                    else if (!keywords_try_search(WEBKIT_WEB_VIEW(c->web_view), t))
                    {
                        f = ensure_uri_scheme(t);
                        webkit_web_view_load_uri(WEBKIT_WEB_VIEW(c->web_view), f);
                        g_free(f);
                    }
                    return TRUE;
                case GDK_KEY_Escape:
                    t = webkit_web_view_get_uri(WEBKIT_WEB_VIEW(c->web_view));
                    gtk_entry_set_text(GTK_ENTRY(c->location),
                                       (t == NULL ? __NAME__ : t));
                    return TRUE;
            }
        }
    }

    return FALSE;
}
Esempio n. 10
0
File: surf.c Progetto: sr/surf
gboolean
keypress(GtkWidget* w, GdkEventKey *ev, gpointer d) {
    Client *c = (Client *)d;

    if(ev->type != GDK_KEY_PRESS)
        return FALSE;
    if(GTK_WIDGET_HAS_FOCUS(c->searchbar)) {
        switch(ev->keyval) {
        case GDK_Escape:
            hidesearch(c);
            return TRUE;
        case GDK_Return:
            webkit_web_view_search_text(c->view,
                                        gtk_entry_get_text(GTK_ENTRY(c->searchbar)),
                                        FALSE,
                                        !(ev->state & GDK_SHIFT_MASK),
                                        TRUE);
            return TRUE;
        case GDK_Left:
        case GDK_Right:
        case GDK_r:
            return FALSE;
        }
    }
    else if(GTK_WIDGET_HAS_FOCUS(c->urlbar)) {
        switch(ev->keyval) {
        case GDK_Escape:
            hideurl(c);
            return TRUE;
        case GDK_Return:
            loaduri(c, gtk_entry_get_text(GTK_ENTRY(c->urlbar)));
            hideurl(c);
            return TRUE;
        case GDK_Left:
        case GDK_Right:
        case GDK_r:
            return FALSE;
        }
    }
    else if(ev->state == GDK_CONTROL_MASK || ev->state == (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) {
        switch(ev->keyval) {
        case GDK_r:
        case GDK_R:
            if((ev->state & GDK_SHIFT_MASK))
                webkit_web_view_reload_bypass_cache(c->view);
            else
                webkit_web_view_reload(c->view);
            return TRUE;
        case GDK_b:
            return TRUE;
        case GDK_g:
            showurl(c);
            return TRUE;
        case GDK_slash:
            showsearch(c);
            return TRUE;
        case GDK_Left:
            webkit_web_view_go_back(c->view);
            return TRUE;
        case GDK_Right:
            webkit_web_view_go_forward(c->view);
            return TRUE;
        }
    }
    else {
        switch(ev->keyval) {
        case GDK_k:
            webkit_web_view_move_cursor(c->view, GTK_MOVEMENT_DISPLAY_LINES, -1);
            return TRUE;
        case GDK_j:
            webkit_web_view_move_cursor(c->view, GTK_MOVEMENT_DISPLAY_LINES, 1);
            return TRUE;
        }
    }
    return FALSE;
}
Esempio n. 11
0
static void reloadPageIgnoringCache(BrowserWindow *window, gpointer user_data)
{
    webkit_web_view_reload_bypass_cache(window->webView);
}