Changeset 30385 in webkit
- Timestamp:
- Feb 18, 2008 3:03:57 PM (16 years ago)
- Location:
- trunk/WebKit/gtk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit/gtk/ChangeLog
r30384 r30385 1 2008-02-18 Alp Toker <alp@atoker.com> 2 3 Reviewed by Mark Rowe. 4 5 http://bugs.webkit.org/show_bug.cgi?id=17312 6 [GTK] Webview Transparent Background 7 8 Add support for WebView background transparency. 9 10 * webkit/webkitprivate.h: 11 * webkit/webkitwebview.cpp: 12 * webkit/webkitwebview.h: 13 1 14 2008-02-18 Alp Toker <alp@atoker.com> 2 15 -
trunk/WebKit/gtk/webkit/webkitprivate.h
r30226 r30385 85 85 GtkTargetList* copy_target_list; 86 86 GtkTargetList* paste_target_list; 87 88 gboolean transparent; 87 89 }; 88 90 -
trunk/WebKit/gtk/webkit/webkitwebview.cpp
r30384 r30385 95 95 PROP_PASTE_TARGET_LIST, 96 96 PROP_EDITABLE, 97 PROP_SETTINGS 97 PROP_SETTINGS, 98 PROP_TRANSPARENT 98 99 }; 99 100 … … 213 214 g_value_set_object(value, webkit_web_view_get_settings(webView)); 214 215 break; 216 case PROP_TRANSPARENT: 217 g_value_set_boolean(value, webkit_web_view_get_transparent(webView)); 218 break; 215 219 default: 216 220 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); … … 229 233 webkit_web_view_set_settings(webView, WEBKIT_WEB_SETTINGS(g_value_get_object(value))); 230 234 break; 235 case PROP_TRANSPARENT: 236 webkit_web_view_set_transparent(webView, g_value_get_boolean(value)); 237 break; 231 238 default: 232 239 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); … … 237 244 { 238 245 WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); 246 WebKitWebViewPrivate* priv = webView->priv; 239 247 240 248 Frame* frame = core(webView)->mainFrame(); … … 246 254 if (frame->renderer()) { 247 255 frame->view()->layoutIfNeededRecursive(); 256 257 if (priv->transparent) { 258 cairo_save(cr); 259 cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR); 260 cairo_paint(cr); 261 cairo_restore(cr); 262 } 263 248 264 frame->view()->paint(&ctx, clip); 249 265 } … … 1077 1093 "Editable", 1078 1094 "Whether content can be modified by the user", 1095 FALSE, 1096 WEBKIT_PARAM_READWRITE)); 1097 1098 g_object_class_install_property(objectClass, PROP_TRANSPARENT, 1099 g_param_spec_boolean("transparent", 1100 "Transparent", 1101 "Whether content has a transparent background", 1079 1102 FALSE, 1080 1103 WEBKIT_PARAM_READWRITE)); … … 1873 1896 } 1874 1897 1875 } 1898 /** 1899 * webkit_web_view_get_transparent: 1900 * @web_view: a #WebKitWebView 1901 * 1902 * Returns whether the #WebKitWebView has a transparent background. 1903 * 1904 * Return value: %FALSE when the #WebKitWebView draws a solid background 1905 * (the default), otherwise %TRUE. 1906 */ 1907 gboolean webkit_web_view_get_transparent(WebKitWebView* webView) 1908 { 1909 g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL); 1910 1911 WebKitWebViewPrivate* priv = webView->priv; 1912 return priv->transparent; 1913 } 1914 1915 /** 1916 * webkit_web_view_set_transparent: 1917 * @web_view: a #WebKitWebView 1918 * 1919 * Sets whether the #WebKitWebView has a transparent background. 1920 * 1921 * Pass %FALSE to have the #WebKitWebView draw a solid background 1922 * (the default), otherwise %TRUE. 1923 */ 1924 void webkit_web_view_set_transparent(WebKitWebView* webView, gboolean flag) 1925 { 1926 g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); 1927 1928 WebKitWebViewPrivate* priv = webView->priv; 1929 priv->transparent = flag; 1930 1931 // TODO: This needs to be made persistent or it could become a problem when 1932 // the main frame is replaced. 1933 Frame* frame = core(webView)->mainFrame(); 1934 g_return_if_fail(frame); 1935 frame->view()->setTransparent(flag); 1936 } 1937 1938 } -
trunk/WebKit/gtk/webkit/webkitwebview.h
r30384 r30385 212 212 webkit_web_view_go_backward (WebKitWebView* web_view); 213 213 214 WEBKIT_API gboolean 215 webkit_web_view_get_transparent (WebKitWebView* web_view); 216 217 WEBKIT_API void 218 webkit_web_view_set_transparent (WebKitWebView* web_view, gboolean flag); 219 214 220 G_END_DECLS 215 221
Note: See TracChangeset
for help on using the changeset viewer.