X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=surf.c;h=938785991f1688f5f3f1244f8d8ec962dd32696a;hb=7ca9421a69956c27b010cc9fc6162df7fa9699cf;hp=df851a183fbee6b130706bbf0f43d5e9d1c89f93;hpb=6e019362c5e6cffbb10b00efc654a7c173a031c9;p=surf.git diff --git a/surf.c b/surf.c index df851a1..9387859 100644 --- a/surf.c +++ b/surf.c @@ -571,6 +571,7 @@ seturiparameters(Client *c, const char *uri) void setparameter(Client *c, int refresh, ParamName p, const Arg *a) { + GdkRGBA bgcolor = { 0 }; WebKitSettings *s = webkit_web_view_get_settings(c->view); switch (p) { @@ -587,28 +588,29 @@ setparameter(Client *c, int refresh, ParamName p, const Arg *a) break; case DiskCache: webkit_web_context_set_cache_model( - webkit_web_view_get_context(c->view), - curconfig[DiskCache].val.b ? + webkit_web_view_get_context(c->view), a->b ? WEBKIT_CACHE_MODEL_WEB_BROWSER : WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER); - break; + return; /* do not update */ case DNSPrefetch: - refresh = 0; - break; + webkit_settings_set_enable_dns_prefetching(s, a->b); + return; /* do not update */ case FontSize: - webkit_settings_set_default_font_size( - webkit_web_view_get_settings(c->view), - curconfig[FontSize].val.i); - break; + webkit_settings_set_default_font_size(s, a->i); + return; /* do not update */ case FrameFlattening: webkit_settings_set_enable_frame_flattening(s, a->b); break; case Geolocation: + refresh = 0; break; case HideBackground: - return; /* do nothing */ + if (a->b) + webkit_web_view_set_background_color(c->view, &bgcolor); + return; /* do not update */ case Inspector: - return; /* do nothing */ + webkit_settings_set_enable_developer_extras(s, a->b); + return; /* do not update */ case JavaScript: webkit_settings_set_enable_javascript(s, a->b); break; @@ -631,25 +633,23 @@ setparameter(Client *c, int refresh, ParamName p, const Arg *a) evalscript(c, "document.documentElement.style.overflow = '%s'", enablescrollbars ? "auto" : "hidden"); */ - refresh = 0; - break; + return; /* do not update */ case ShowIndicators: - return; /* do nothing */ + break; case SpellChecking: webkit_web_context_set_spell_checking_enabled( - webkit_web_view_get_context(c->view), - curconfig[SpellChecking].val.b); - return; /* do nothing */ + webkit_web_view_get_context(c->view), a->b); + return; /* do not update */ case SpellLanguages: return; /* do nothing */ case StrictSSL: webkit_web_context_set_tls_errors_policy( - webkit_web_view_get_context(c->view), - curconfig[StrictSSL].val.b ? WEBKIT_TLS_ERRORS_POLICY_FAIL : + webkit_web_view_get_context(c->view), a->b ? + WEBKIT_TLS_ERRORS_POLICY_FAIL : WEBKIT_TLS_ERRORS_POLICY_IGNORE); - return; /* do nothing */ + return; /* do not update */ case Style: - if (curconfig[Style].val.b) + if (a->b) setstyle(c, getstyle(geturi(c))); else webkit_user_content_manager_remove_all_style_sheets( @@ -657,7 +657,8 @@ setparameter(Client *c, int refresh, ParamName p, const Arg *a) refresh = 0; break; case ZoomLevel: - return; /* do nothing */ + webkit_web_view_set_zoom_level(c->view, a->f); + return; /* do not update */ default: return; /* do nothing */ } @@ -1083,8 +1084,7 @@ showview(WebKitWebView *v, Client *c) GdkWindow *gwin; c->finder = webkit_web_view_get_find_controller(c->view); - if (curconfig[Inspector].val.b) - c->inspector = webkit_web_view_get_inspector(c->view); + c->inspector = webkit_web_view_get_inspector(c->view); c->win = createwindow(c); @@ -1167,20 +1167,18 @@ loadchanged(WebKitWebView *v, WebKitLoadEvent e, Client *c) setatom(c, AtomUri, title); c->title = title; c->tlsflags = G_TLS_CERTIFICATE_VALIDATE_ALL + 1; + seturiparameters(c, geturi(c)); break; case WEBKIT_LOAD_REDIRECTED: setatom(c, AtomUri, title); c->title = title; + seturiparameters(c, geturi(c)); break; case WEBKIT_LOAD_COMMITTED: - setatom(c, AtomUri, title); - c->title = title; if (!webkit_web_view_get_tls_info(c->view, NULL, &(c->tlsflags))) c->tlsflags = G_TLS_CERTIFICATE_VALIDATE_ALL + 1; - setatom(c, AtomUri, geturi(c)); - seturiparameters(c, geturi(c)); break; case WEBKIT_LOAD_FINISHED: /* Disabled until we write some WebKitWebExtension for @@ -1461,7 +1459,6 @@ scroll(Client *c, const Arg *a) GdkEvent *ev = gdk_event_new(GDK_KEY_PRESS); gdk_event_set_device(ev, gdkkb); -// gdk_event_set_screen(ev, gdk_screen_get_default()); ev->key.window = gtk_widget_get_window(GTK_WIDGET(c->win)); ev->key.state = GDK_CONTROL_MASK; ev->key.time = GDK_CURRENT_TIME; @@ -1534,12 +1531,10 @@ togglecookiepolicy(Client *c, const Arg *a) void toggleinspector(Client *c, const Arg *a) { - if (curconfig[Inspector].val.b) { - if (webkit_web_inspector_is_attached(c->inspector)) - webkit_web_inspector_close(c->inspector); - else - webkit_web_inspector_show(c->inspector); - } + if (webkit_web_inspector_is_attached(c->inspector)) + webkit_web_inspector_close(c->inspector); + else if (curconfig[Inspector].val.b) + webkit_web_inspector_show(c->inspector); } void