diff options
author | Daniel Carl <danielcarl@gmx.de> | 2017-05-21 00:01:06 +0200 |
---|---|---|
committer | Daniel Carl <danielcarl@gmx.de> | 2017-05-21 00:01:06 +0200 |
commit | 8f40d4b1bc348c63f0809f97ebc40cd3e2cf1baf (patch) | |
tree | ca2132a5a734daa832e02e67c3efaf34a0aaebb8 /src/setting.c | |
parent | 8e8e5f603c2225f5ef5232c474f957d8b5ee0d77 (diff) | |
parent | 0b0060d95885f280bc635ea24d73078880951b29 (diff) |
Merge branch 'pks/acceleration-settings' of https://github.com/pks-t/vimb into webkit2
Diffstat (limited to 'src/setting.c')
-rw-r--r-- | src/setting.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/setting.c b/src/setting.c index ee7cb19..ab36427 100644 --- a/src/setting.c +++ b/src/setting.c @@ -53,6 +53,7 @@ static int cookie_accept(Client *c, const char *name, DataType type, void *value static int default_zoom(Client *c, const char *name, DataType type, void *value, void *data); static int fullscreen(Client *c, const char *name, DataType type, void *value, void *data); static int gui_style(Client *c, const char *name, DataType type, void *value, void *data); +static int hardware_acceleration_policy(Client *c, const char *name, DataType type, void *value, void *data); static int input_autohide(Client *c, const char *name, DataType type, void *value, void *data); static int internal(Client *c, const char *name, DataType type, void *value, void *data); static int headers(Client *c, const char *name, DataType type, void *value, void *data); @@ -80,6 +81,7 @@ void setting_init(Client *c) setting_add(c, "useragent", TYPE_CHAR, &"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/603.1 (KHTML, like Gecko) " PROJECT "/" VERSION " Version/10.0 Safari/603.1", webkit, 0, "user-agent"); /* TODO use the real names for webkit settings */ i = 14; + setting_add(c, "accelerated-2d-canvas", TYPE_BOOLEAN, &off, webkit, 0, "enable-accelerated-2d-canvas"); setting_add(c, "caret", TYPE_BOOLEAN, &off, webkit, 0, "enable-caret-browsing"); setting_add(c, "cursiv-font", TYPE_CHAR, &"serif", webkit, 0, "cursive-font-family"); setting_add(c, "default-charset", TYPE_CHAR, &"utf-8", webkit, 0, "default-charset"); @@ -88,6 +90,7 @@ void setting_init(Client *c) i = SETTING_DEFAULT_FONT_SIZE; setting_add(c, "font-size", TYPE_INTEGER, &i, webkit, 0, "default-font-size"); setting_add(c, "frame-flattening", TYPE_BOOLEAN, &off, webkit, 0, "enable-frame-flattening"); + setting_add(c, "hardware-acceleration-policy", TYPE_CHAR, &"ondemand", hardware_acceleration_policy, FLAG_NODUP, NULL); setting_add(c, "header", TYPE_CHAR, &"", headers, FLAG_LIST|FLAG_NODUP, "header"); i = 1000; setting_add(c, "hint-timeout", TYPE_INTEGER, &i, NULL, 0, NULL); @@ -539,6 +542,24 @@ static int fullscreen(Client *c, const char *name, DataType type, void *value, v return CMD_SUCCESS; } +static int hardware_acceleration_policy(Client *c, const char *name, DataType type, void *value, void *data) +{ + WebKitSettings *settings = webkit_web_view_get_settings(c->webview); + + if (g_str_equal(value, "ondemand")) { + webkit_settings_set_hardware_acceleration_policy(settings, WEBKIT_HARDWARE_ACCELERATION_POLICY_ON_DEMAND); + } else if (g_str_equal(value, "always")) { + webkit_settings_set_hardware_acceleration_policy(settings, WEBKIT_HARDWARE_ACCELERATION_POLICY_ALWAYS); + } else if (g_str_equal(value, "never")) { + webkit_settings_set_hardware_acceleration_policy(settings, WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER); + } else { + vb_echo(c, MSG_ERROR, TRUE, "%s must be in [ondemand, always, never]", name); + return CMD_ERROR|CMD_KEEPINPUT; + } + + return CMD_SUCCESS; +} + /** * Allow to set user defined http headers. * |