diff options
| author | infirit <[email protected]> | 2014-07-24 15:15:58 +0200 | 
|---|---|---|
| committer | infirit <[email protected]> | 2014-07-24 20:17:46 +0200 | 
| commit | 45d1ebfc67a1bd33bc0232ed658dc5e02c13a612 (patch) | |
| tree | 406b1711d04d36e264d845508696f26e49635a2e /src | |
| parent | 661dbc7df871f63946cfd67b7458b1228080932c (diff) | |
| download | eom-45d1ebfc67a1bd33bc0232ed658dc5e02c13a612.tar.bz2 eom-45d1ebfc67a1bd33bc0232ed658dc5e02c13a612.tar.xz  | |
Use gdk_window_create_similar_surface() for EomScrollView
Based on eog commit 648302091b5517b5da96c4277fbee8f13c125938
From Claudio Saavedra <[email protected]>
Diffstat (limited to 'src')
| -rw-r--r-- | src/eom-scroll-view.c | 19 | 
1 files changed, 12 insertions, 7 deletions
diff --git a/src/eom-scroll-view.c b/src/eom-scroll-view.c index fcd44ab..eb1d53b 100644 --- a/src/eom-scroll-view.c +++ b/src/eom-scroll-view.c @@ -170,20 +170,25 @@ G_DEFINE_TYPE (EomScrollView, eom_scroll_view, GTK_TYPE_TABLE)    ---------------------------------*/  static cairo_surface_t * -create_surface_from_pixbuf (GdkPixbuf *pixbuf) +create_surface_from_pixbuf (EomScrollView *view, GdkPixbuf *pixbuf)  {  	cairo_surface_t *surface;  	cairo_t *cr;  	cairo_format_t format; +	cairo_content_t content; -	if (gdk_pixbuf_get_has_alpha (pixbuf)) +	if (gdk_pixbuf_get_has_alpha (pixbuf)) {  		format = CAIRO_FORMAT_ARGB32; -	else +		content = CAIRO_CONTENT_COLOR | CAIRO_CONTENT_ALPHA; +	} else {  		format = CAIRO_FORMAT_RGB24; +		content = CAIRO_CONTENT_COLOR; +	} -	surface = cairo_image_surface_create (format, -						gdk_pixbuf_get_width (pixbuf), -						gdk_pixbuf_get_height (pixbuf)); +	surface = gdk_window_create_similar_surface (gtk_widget_get_window (view->priv->display), +							content, +							gdk_pixbuf_get_width (pixbuf), +							gdk_pixbuf_get_height (pixbuf));  	cr = cairo_create (surface);  	gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);  	cairo_paint (cr); @@ -1880,7 +1885,7 @@ update_pixbuf (EomScrollView *view, GdkPixbuf *pixbuf)  	if (priv->surface) {  		cairo_surface_destroy (priv->surface);  	} -	priv->surface = create_surface_from_pixbuf (priv->pixbuf); +	priv->surface = create_surface_from_pixbuf (view, priv->pixbuf);  }  static void  | 
