|
116 | 116 | #if ENABLE(WPE_PLATFORM) |
117 | 117 | #include "WebKitInputMethodContextImplWPE.h" |
118 | 118 | #endif |
| 119 | +#include "WebKitColor.h" |
119 | 120 | #endif |
120 | 121 |
|
121 | 122 | #if ENABLE(2022_GLIB_API) |
@@ -244,6 +245,10 @@ enum { |
244 | 245 | PROP_WEB_EXTENSION_MODE, |
245 | 246 | PROP_DEFAULT_CONTENT_SECURITY_POLICY, |
246 | 247 |
|
| 248 | +#if PLATFORM(WPE) |
| 249 | + PROP_THEME_COLOR, |
| 250 | +#endif |
| 251 | + |
247 | 252 | N_PROPERTIES, |
248 | 253 | }; |
249 | 254 |
|
@@ -557,6 +562,13 @@ WebKitWebResourceLoadManager* WebKitWebViewClient::webResourceLoadManager() |
557 | 562 | return webkitWebViewGetWebResourceLoadManager(m_webView); |
558 | 563 | } |
559 | 564 |
|
| 565 | +void WebKitWebViewClient::themeColorDidChange() |
| 566 | +{ |
| 567 | +#if PLATFORM(WPE) |
| 568 | + g_object_notify_by_pspec(G_OBJECT(m_webView), sObjProperties[PROP_THEME_COLOR]); |
| 569 | +#endif |
| 570 | +} |
| 571 | + |
560 | 572 | #if ENABLE(FULLSCREEN_API) |
561 | 573 | bool WebKitWebViewClient::enterFullScreen(WKWPE::View&) |
562 | 574 | { |
@@ -1177,6 +1189,14 @@ static void webkitWebViewGetProperty(GObject* object, guint propId, GValue* valu |
1177 | 1189 | case PROP_DEFAULT_CONTENT_SECURITY_POLICY: |
1178 | 1190 | g_value_set_string(value, webkit_web_view_get_default_content_security_policy(webView)); |
1179 | 1191 | break; |
| 1192 | +#if PLATFORM(WPE) |
| 1193 | + case PROP_THEME_COLOR: { |
| 1194 | + auto* color = static_cast<WebKitColor*>(fastMalloc(sizeof(WebKitColor))); |
| 1195 | + webkit_web_view_get_theme_color(webView, color); |
| 1196 | + g_value_take_boxed(value, static_cast<gconstpointer>(color)); |
| 1197 | + break; |
| 1198 | + } |
| 1199 | +#endif |
1180 | 1200 | default: |
1181 | 1201 | G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec); |
1182 | 1202 | } |
@@ -1710,6 +1730,21 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) |
1710 | 1730 | nullptr, |
1711 | 1731 | static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); |
1712 | 1732 |
|
| 1733 | +#if PLATFORM(WPE) |
| 1734 | + /** |
| 1735 | + * WebKitWebView:theme-color: |
| 1736 | + * |
| 1737 | + * The theme color of the WebView's current page. |
| 1738 | + * |
| 1739 | + * Since: 2.50 |
| 1740 | + */ |
| 1741 | + sObjProperties[PROP_THEME_COLOR] = g_param_spec_boxed( |
| 1742 | + "theme-color", |
| 1743 | + nullptr, nullptr, |
| 1744 | + WEBKIT_TYPE_COLOR, |
| 1745 | + WEBKIT_PARAM_READABLE); |
| 1746 | +#endif |
| 1747 | + |
1713 | 1748 | g_object_class_install_properties(gObjectClass, N_PROPERTIES, sObjProperties.data()); |
1714 | 1749 |
|
1715 | 1750 | /** |
|
0 commit comments