From 5396456ec29afb076b1d186b61c9cd47dde3b642 Mon Sep 17 00:00:00 2001 From: Martin Robinson Date: Mon, 2 Jan 2012 18:28:22 -0800 Subject: [PATCH] Add support for WebGL WebKitGTK+ can be built with WebGL support and if we are running under a version that includes it, expose an option to enable it. The feature is enabled by default for git builds. Fixes: https://bugs.launchpad.net/midori/+bug/853665 --- midori/midori-preferences.c | 7 +++++++ midori/midori-websettings.c | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/midori/midori-preferences.c b/midori/midori-preferences.c index 6bfe1218..3ec6bdff 100644 --- a/midori/midori-preferences.c +++ b/midori/midori-preferences.c @@ -393,6 +393,13 @@ midori_preferences_set_settings (MidoriPreferences* preferences, INDENTED_ADD (button); button = katze_property_proxy (settings, "flash-window-on-new-bg-tabs", NULL); SPANNED_ADD (button); + + if (katze_object_has_property (settings, "enable-webgl")) + { + button = katze_property_proxy (settings, "enable-webgl", NULL); + INDENTED_ADD (button); + } + FRAME_NEW (NULL); button = katze_property_label (settings, "preferred-languages"); INDENTED_ADD (button); diff --git a/midori/midori-websettings.c b/midori/midori-websettings.c index 83ad7fef..121d3149 100644 --- a/midori/midori-websettings.c +++ b/midori/midori-websettings.c @@ -145,6 +145,7 @@ enum PROP_OPEN_TABS_NEXT_TO_CURRENT, PROP_OPEN_POPUPS_IN_TABS, PROP_FLASH_WINDOW_ON_BG_TABS, + PROP_ENABLE_WEBGL, PROP_AUTO_LOAD_IMAGES, PROP_ENABLE_SCRIPTS, @@ -788,6 +789,16 @@ midori_web_settings_class_init (MidoriWebSettingsClass* class) _("Flash the browser window if a new tab was opened in the background"), FALSE, flags)); + if (g_object_class_find_property (gobject_class, "enable-webgl")) + g_object_class_install_property (gobject_class, + PROP_ENABLE_WEBGL, + g_param_spec_boolean ( + "enable-webgl", + _("Enable WebGL support"), + _("Allow websites to use OpenGL rendering"), + /* Enable by default for git builds */ + !g_str_equal (PACKAGE_VERSION, MIDORI_VERSION), + flags)); /** * MidoriWebSettings:zoom-text-and-images: @@ -1574,6 +1585,10 @@ midori_web_settings_set_property (GObject* object, case PROP_FLASH_WINDOW_ON_BG_TABS: web_settings->flash_window_on_bg_tabs = g_value_get_boolean (value); break; + case PROP_ENABLE_WEBGL: + g_object_set (web_settings, "WebKitWebSettings::enable-webgl", + g_value_get_boolean (value), NULL); + break; case PROP_USER_STYLESHEET_URI: { gint old_len = web_settings->user_stylesheet_uri_cached @@ -1859,6 +1874,10 @@ midori_web_settings_get_property (GObject* object, case PROP_FLASH_WINDOW_ON_BG_TABS: g_value_set_boolean (value, web_settings->flash_window_on_bg_tabs); break; + case PROP_ENABLE_WEBGL: + g_value_set_boolean (value, katze_object_get_boolean (web_settings, + "WebKitWebSettings::enable-webgl")); + break; case PROP_USER_STYLESHEET_URI: g_value_take_string (value, katze_object_get_string (web_settings, "WebKitWebSettings::user-stylesheet-uri")); -- 2.39.5